forked from TrueCloudLab/frostfs-s3-gw
[#172] Convert handler config to interface
Signed-off-by: Marina Biryukova <m.biryukova@yadro.com>
This commit is contained in:
parent
51e591877b
commit
b8c93ed391
12 changed files with 239 additions and 230 deletions
95
cmd/s3-gw/decoder_test.go
Normal file
95
cmd/s3-gw/decoder_test.go
Normal file
|
@ -0,0 +1,95 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"testing"
|
||||
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-s3-gw/api/handler"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestDefaultNamespace(t *testing.T) {
|
||||
xmlBodyWithNamespace := `
|
||||
<CompleteMultipartUpload xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
|
||||
<Part>
|
||||
<ETag>string</ETag>
|
||||
<PartNumber>1</PartNumber>
|
||||
</Part>
|
||||
</CompleteMultipartUpload>
|
||||
`
|
||||
xmlBodyWithInvalidNamespace := `
|
||||
<CompleteMultipartUpload xmlns="http://bla.bla.bla/">
|
||||
<Part>
|
||||
<ETag>string</ETag>
|
||||
<PartNumber>1</PartNumber>
|
||||
</Part>
|
||||
</CompleteMultipartUpload>
|
||||
`
|
||||
xmlBody := `
|
||||
<CompleteMultipartUpload>
|
||||
<Part>
|
||||
<ETag>string</ETag>
|
||||
<PartNumber>1</PartNumber>
|
||||
</Part>
|
||||
</CompleteMultipartUpload>
|
||||
`
|
||||
|
||||
for _, tc := range []struct {
|
||||
settings *appSettings
|
||||
input string
|
||||
err bool
|
||||
}{
|
||||
{
|
||||
settings: &appSettings{
|
||||
defaultXMLNSForCompleteMultipart: false,
|
||||
},
|
||||
input: xmlBodyWithNamespace,
|
||||
err: false,
|
||||
},
|
||||
{
|
||||
settings: &appSettings{
|
||||
defaultXMLNSForCompleteMultipart: false,
|
||||
},
|
||||
input: xmlBody,
|
||||
err: true,
|
||||
},
|
||||
{
|
||||
settings: &appSettings{
|
||||
defaultXMLNSForCompleteMultipart: false,
|
||||
},
|
||||
input: xmlBodyWithInvalidNamespace,
|
||||
err: true,
|
||||
},
|
||||
{
|
||||
settings: &appSettings{
|
||||
defaultXMLNSForCompleteMultipart: true,
|
||||
},
|
||||
input: xmlBodyWithNamespace,
|
||||
err: false,
|
||||
},
|
||||
{
|
||||
settings: &appSettings{
|
||||
defaultXMLNSForCompleteMultipart: true,
|
||||
},
|
||||
input: xmlBody,
|
||||
err: false,
|
||||
},
|
||||
{
|
||||
settings: &appSettings{
|
||||
defaultXMLNSForCompleteMultipart: true,
|
||||
},
|
||||
input: xmlBodyWithInvalidNamespace,
|
||||
err: true,
|
||||
},
|
||||
} {
|
||||
t.Run("", func(t *testing.T) {
|
||||
model := new(handler.CompleteMultipartUpload)
|
||||
err := tc.settings.NewCompleteMultipartDecoder(bytes.NewBufferString(tc.input)).Decode(model)
|
||||
if tc.err {
|
||||
require.Error(t, err)
|
||||
} else {
|
||||
require.NoError(t, err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue