Skip to content

Commit

Permalink
Extending test coverage for compression types
Browse files Browse the repository at this point in the history
  • Loading branch information
rnishtala-sumo committed Sep 9, 2024
1 parent db1d414 commit 2ff904d
Show file tree
Hide file tree
Showing 3 changed files with 129 additions and 2 deletions.
2 changes: 2 additions & 0 deletions config/configcompression/compressiontype.go
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ func (ct *Type) IsGzip() bool {
levelStr == zlib.NoCompression {
return true
}
return false
}
return true
}
Expand All @@ -90,6 +91,7 @@ func (ct *Type) IsZlib() bool {
levelStr == zlib.NoCompression {
return true
}
return false
}
return true
}
Expand Down
113 changes: 113 additions & 0 deletions config/configcompression/compressiontype_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -78,3 +78,116 @@ func TestUnmarshalText(t *testing.T) {
})
}
}

func TestIsZstd(t *testing.T) {
tests := []struct {
name string
input Type
expected bool
}{
{
name: "ValidZstd",
input: TypeZstd,
expected: true,
},
{
name: "InvalidZstd",
input: TypeGzip,
expected: false,
},
{
name: "ValidZstdLevel",
input: "zstd/11",
expected: true,
},
{
name: "ValidZstdLevel",
input: "zstd/One",
expected: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equal(t, tt.expected, tt.input.IsZstd())
})
}
}

func TestIsGzip(t *testing.T) {
tests := []struct {
name string
input Type
expected bool
}{
{
name: "ValidGzip",
input: TypeGzip,
expected: true,
},
{
name: "InvalidGzip",
input: TypeZlib,
expected: false,
},
{
name: "ValidZlibCompressionLevel",
input: "gzip/1",
expected: true,
},
{
name: "InvalidZlibCompressionLevel",
input: "gzip/10",
expected: false,
},
{
name: "InvalidZlibCompressionLevel",
input: "gzip/one",
expected: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equal(t, tt.expected, tt.input.IsGzip())
})
}
}

func TestIsZlib(t *testing.T) {
tests := []struct {
name string
input Type
expected bool
err bool
}{
{
name: "ValidZlib",
input: TypeZlib,
expected: true,
},
{
name: "InvalidZlib",
input: TypeGzip,
expected: false,
},
{
name: "ValidZlibCompressionLevel",
input: "zlib/1",
expected: true,
},
{
name: "InvalidZlibCompressionLevel",
input: "zlib/10",
expected: false,
},
{
name: "InvalidZlibCompressionLevel",
input: "zlib/one",
expected: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equal(t, tt.expected, tt.input.IsZlib())
})
}
}
16 changes: 14 additions & 2 deletions config/confighttp/compression_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,18 @@ func TestHTTPClientCompression(t *testing.T) {
reqBody: compressedZstdBody.Bytes(),
shouldError: false,
},
{
name: "InvalidZlib",
encoding: "zlib/one",
reqBody: compressedZstdBody.Bytes(),
shouldError: true,
},
{
name: "InvalidSnappy",
encoding: "snappy/1",
reqBody: compressedZstdBody.Bytes(),
shouldError: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
Expand All @@ -108,13 +120,13 @@ func TestHTTPClientCompression(t *testing.T) {
Compression: tt.encoding,
}
client, err := clientSettings.ToClient(context.Background(), componenttest.NewNopHost(), componenttest.NewNopTelemetrySettings())
require.NoError(t, err)
res, err := client.Do(req)
if tt.shouldError {
assert.Error(t, err)
return
}
require.NoError(t, err)
res, err := client.Do(req)
require.NoError(t, err)

_, err = io.ReadAll(res.Body)
require.NoError(t, err)
Expand Down

0 comments on commit 2ff904d

Please sign in to comment.