tags_test.go 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package s3api
  2. import (
  3. "encoding/xml"
  4. "github.com/chrislusf/seaweedfs/weed/s3api/s3err"
  5. "github.com/stretchr/testify/assert"
  6. "testing"
  7. )
  8. func TestXMLUnmarshall(t *testing.T) {
  9. input := `<?xml version="1.0" encoding="UTF-8"?>
  10. <Tagging xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  11. <TagSet>
  12. <Tag>
  13. <Key>key1</Key>
  14. <Value>value1</Value>
  15. </Tag>
  16. </TagSet>
  17. </Tagging>
  18. `
  19. tags := &Tagging{}
  20. xml.Unmarshal([]byte(input), tags)
  21. assert.Equal(t, len(tags.TagSet.Tag), 1)
  22. assert.Equal(t, tags.TagSet.Tag[0].Key, "key1")
  23. assert.Equal(t, tags.TagSet.Tag[0].Value, "value1")
  24. }
  25. func TestXMLMarshall(t *testing.T) {
  26. tags := &Tagging{
  27. TagSet: TagSet{
  28. []Tag{
  29. {
  30. Key: "key1",
  31. Value: "value1",
  32. },
  33. },
  34. },
  35. }
  36. actual := string(s3err.EncodeXMLResponse(tags))
  37. expected := `<?xml version="1.0" encoding="UTF-8"?>
  38. <Tagging xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><TagSet><Tag><Key>key1</Key><Value>value1</Value></Tag></TagSet></Tagging>`
  39. assert.Equal(t, expected, actual)
  40. }