MCPcopy Create free account
hub / github.com/coder/coder / TestNewDataBuilderValidation

Function TestNewDataBuilderValidation

provisionersdk/proto/dataupload_test.go:14–107  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

12)
13
14func TestNewDataBuilderValidation(t *testing.T) {
15 t.Parallel()
16
17 validHash := sha256.Sum256([]byte{})
18
19 t.Run("ExactMaxFileSize", func(t *testing.T) {
20 t.Parallel()
21 builder, err := proto.NewDataBuilder(&proto.DataUpload{
22 DataHash: validHash[:],
23 FileSize: proto.MaxFileSize,
24 Chunks: int32((proto.MaxFileSize + proto.ChunkSize - 1) / proto.ChunkSize),
25 UploadType: proto.DataUploadType_UPLOAD_TYPE_MODULE_FILES,
26 })
27 require.NoError(t, err)
28 require.NotNil(t, builder)
29 })
30
31 t.Run("OversizedFileSize", func(t *testing.T) {
32 t.Parallel()
33 _, err := proto.NewDataBuilder(&proto.DataUpload{
34 DataHash: validHash[:],
35 FileSize: proto.MaxFileSize + 1,
36 Chunks: 1,
37 UploadType: proto.DataUploadType_UPLOAD_TYPE_MODULE_FILES,
38 })
39 require.ErrorContains(t, err, "exceeds maximum allowed")
40 })
41
42 t.Run("NegativeFileSize", func(t *testing.T) {
43 t.Parallel()
44 _, err := proto.NewDataBuilder(&proto.DataUpload{
45 DataHash: validHash[:],
46 FileSize: -1,
47 Chunks: 1,
48 UploadType: proto.DataUploadType_UPLOAD_TYPE_MODULE_FILES,
49 })
50 require.ErrorContains(t, err, "must not be negative")
51 })
52
53 t.Run("NegativeChunks", func(t *testing.T) {
54 t.Parallel()
55 _, err := proto.NewDataBuilder(&proto.DataUpload{
56 DataHash: validHash[:],
57 FileSize: 100,
58 Chunks: -1,
59 UploadType: proto.DataUploadType_UPLOAD_TYPE_MODULE_FILES,
60 })
61 require.ErrorContains(t, err, "chunk count must not be negative")
62 })
63
64 t.Run("ExcessiveChunkCount", func(t *testing.T) {
65 t.Parallel()
66 _, err := proto.NewDataBuilder(&proto.DataUpload{
67 DataHash: validHash[:],
68 FileSize: 100,
69 Chunks: 1000,
70 UploadType: proto.DataUploadType_UPLOAD_TYPE_MODULE_FILES,
71 })

Callers

nothing calls this directly

Calls 8

IsDoneMethod · 0.95
AddMethod · 0.95
CompleteMethod · 0.95
NewDataBuilderFunction · 0.92
BytesToDataUploadFunction · 0.92
RunMethod · 0.65
ReadMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected