(t *testing.T)
| 12 | ) |
| 13 | |
| 14 | func 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 | }) |
nothing calls this directly
no test coverage detected