1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
package server_test
// func TestBatch(t *testing.T) {
// env := newEnv(t)
// // env.logLevel = server.DebugLevel
// tk := testKeysSeeded()
// channel, channel2 := tk.channel, tk.channel2
// srv := newTestServer(t, env)
// clock := env.clock
// reqs := api.BatchRequests{
// Requests: []*api.BatchRequest{},
// }
// // PUT /channel/:cid (x2)
// req, err := http.NewAuthRequest("PUT", dstore.Path("channel", channel.ID()), nil, "", clock.Now(), channel)
// require.NoError(t, err)
// code, _, _ := srv.Serve(req)
// require.Equal(t, http.StatusOK, code)
// req, err = http.NewAuthRequest("PUT", dstore.Path("channel", channel2.ID()), nil, "", clock.Now(), channel2)
// require.NoError(t, err)
// code, _, _ = srv.Serve(req)
// require.Equal(t, http.StatusOK, code)
// // PUT /batch
// req1, err := api.NewBatchRequest("1", "GET", dstore.Path("channel", channel.ID()), "", clock.Now(), channel)
// require.NoError(t, err)
// reqs.Requests = append(reqs.Requests, req1)
// req2, err := api.NewBatchRequest("2", "GET", dstore.Path("channel", channel2.ID()), "", clock.Now(), channel2)
// require.NoError(t, err)
// reqs.Requests = append(reqs.Requests, req2)
// b, err := json.Marshal(reqs)
// require.NoError(t, err)
// req, err = http.NewRequest("POST", "/batch", bytes.NewReader(b))
// require.NoError(t, err)
// code, _, body := srv.Serve(req)
// var resp api.BatchResponses
// err = json.Unmarshal([]byte(body), &resp)
// require.NoError(t, err)
// require.Equal(t, http.StatusOK, code)
// require.Equal(t, 2, len(resp.Responses))
// require.Equal(t, "1", resp.Responses[0].ID)
// require.Equal(t, 200, resp.Responses[0].Status)
// var channelOut api.Channel
// err = resp.Responses[0].As(&channelOut)
// require.NoError(t, err)
// require.Equal(t, keys.ID("kex1fzlrdfy4wlyaturcqkfq92ywj7lft9awtdg70d2yftzhspmc45qsvghhep"), channelOut.ID)
// require.Equal(t, int64(1234567890004), channelOut.Timestamp)
// require.Equal(t, "2", resp.Responses[1].ID)
// require.Equal(t, 200, resp.Responses[1].Status)
// err = resp.Responses[1].As(&channelOut)
// require.NoError(t, err)
// require.Equal(t, keys.ID("kex1tan3x22v8nc6s98gmr9q3zwmy0ngywm4yja0zdylh37e752jj3dsur2s3g"), channelOut.ID)
// require.Equal(t, int64(1234567890008), channelOut.Timestamp)
// }