Skip to content

Commit

Permalink
Merge branch 'fix_expand_tests' into fix_generated_enums
Browse files Browse the repository at this point in the history
  • Loading branch information
matttproud committed Aug 26, 2012
2 parents 761e17c + a00bc2e commit 50d8cc5
Showing 1 changed file with 195 additions and 0 deletions.
195 changes: 195 additions & 0 deletions tests/generation/simple_test.go
Expand Up @@ -312,3 +312,198 @@ func TestContainerOfEnumsOptionalFieldsAreSetStatusAfterSet(t *testing.T) {
t.Errorf("emission.DefaultNineth = %q; emission.IsSetDefaultNineth() => %s, want %s", emission.DefaultNineth, emission.IsSetDefaultNineth(), true)
}
}

type protocolBuilder func() thrift.TProtocol

func TestWireFormatWithDefaultPayload(t *testing.T) {
var transport thrift.TTransport

var protocols = []struct {
name string
builder protocolBuilder
}{
{
"TBinaryProtocol",
func() thrift.TProtocol {
return thrift.NewTBinaryProtocolTransport(transport)
},
},
{
"TCompactProtocol",
func() thrift.TProtocol {
return thrift.NewTCompactProtocol(transport)
},
},
{
"TJSONProtocol",
func() thrift.TProtocol {
return thrift.NewTJSONProtocol(transport)
},
},
{
"TSimpleJSONProtocol",
func() thrift.TProtocol {
return thrift.NewTSimpleJSONProtocol(transport)
},
},
}

for i, definition := range protocols {
transport = thrift.NewTMemoryBuffer()
defer transport.Close()
protocol := definition.builder()
name := definition.name

emission := NewContainerOfEnums()

if err := emission.Write(protocol); err != nil {
t.Fatalf("%d (%s): Could not emit simple %q to JSON.", i, name, emission)
}

if err := protocol.Flush(); err != nil {
t.Fatalf("%d (%s): Could not flush emission.", i, name)
}

incoming := NewContainerOfEnums()

if err := incoming.Read(protocol); err != nil {
t.Fatalf("%d (%s): Could not read from buffer: %q\n", i, name, err)
}

if emission.First != incoming.First {
t.Errorf("%d (%s) emission.First (%q) != incoming.First (%q)\n", i, name, emission.First, incoming.First)
}

if emission.Second != incoming.Second {
t.Errorf("%d (%s) emission.Second (%q) != incoming.Second (%q)\n", i, name, emission.Second, incoming.Second)
}

if emission.Third != incoming.Third {
t.Errorf("%d (%s) emission.Third (%q) != incoming.Third (%q)\n", i, name, emission.Third, incoming.Third)
}

if emission.OptionalFourth != incoming.OptionalFourth {
t.Errorf("%d (%s) emission.OptionalFourth (%q) != incoming.OptionalFourth (%q)\n", i, name, emission.OptionalFourth, incoming.OptionalFourth)
}

if emission.OptionalFifth != incoming.OptionalFifth {
t.Errorf("%d (%s) emission.OptionalFifth (%q) != incoming.OptionalFifth (%q)\n", i, name, emission.OptionalFifth, incoming.OptionalFifth)
}

if emission.OptionalSixth != incoming.OptionalSixth {
t.Errorf("%d (%s) emission.OptionalSixth (%q) != incoming.OptionalSixth (%q)\n", i, name, emission.OptionalSixth, incoming.OptionalSixth)
}

if emission.IsSetOptionalFourth() != incoming.IsSetOptionalFourth() {
t.Errorf("%d (%s) emission.IsSetOptionalFourth (%q) != incoming.IsSetOptionalFourth (%q)\n", i, name, emission.IsSetOptionalFourth(), incoming.IsSetOptionalFourth())
}

if emission.IsSetOptionalFifth() != incoming.IsSetOptionalFifth() {
t.Errorf("%d (%s) emission.IsSetOptionalFifth (%q) != incoming.IsSetOptionalFifth (%q)\n", i, name, emission.IsSetOptionalFifth(), incoming.IsSetOptionalFifth())
}

if emission.IsSetOptionalSixth() != incoming.IsSetOptionalSixth() {
t.Errorf("%d (%s) emission.IsSetOptionalSixth (%q) != incoming.IsSetOptionalSixth (%q)\n", i, name, emission.IsSetOptionalSixth(), incoming.IsSetOptionalSixth())
}
}
}

func TestWireFormatWithSetPayload(t *testing.T) {
var transport thrift.TTransport

var protocols = []struct {
name string
builder protocolBuilder
}{
{
"TBinaryProtocol",
func() thrift.TProtocol {
return thrift.NewTBinaryProtocolTransport(transport)
},
},
{
"TCompactProtocol",
func() thrift.TProtocol {
return thrift.NewTCompactProtocol(transport)
},
},
{
"TJSONProtocol",
func() thrift.TProtocol {
return thrift.NewTJSONProtocol(transport)
},
},
{
"TSimpleJSONProtocol",
func() thrift.TProtocol {
return thrift.NewTSimpleJSONProtocol(transport)
},
},
}

for i, definition := range protocols {
transport = thrift.NewTMemoryBuffer()
defer transport.Close()
protocol := definition.builder()
name := definition.name

emission := NewContainerOfEnums()
emission.First = UndefinedTwo
emission.Second = DefinedTwo
emission.Third = HeterogeneousTwo
emission.OptionalFourth = UndefinedThree
emission.OptionalFifth = DefinedThree
emission.OptionalSixth = HeterogeneousThree

if err := emission.Write(protocol); err != nil {
t.Fatalf("%d (%s): Could not emit simple %q to JSON.", i, name, emission)
}

if err := protocol.Flush(); err != nil {
t.Fatalf("%d (%s): Could not flush emission.", i, name)
}

incoming := NewContainerOfEnums()

if err := incoming.Read(protocol); err != nil {
t.Fatalf("%d (%s): Could not read from buffer: %q\n", i, name, err)
}

if emission.First != incoming.First {
t.Errorf("%d (%s) emission.First (%q) != incoming.First (%q)\n", i, name, emission.First, incoming.First)
}

if emission.Second != incoming.Second {
t.Errorf("%d (%s) emission.Second (%q) != incoming.Second (%q)\n", i, name, emission.Second, incoming.Second)
}

if emission.Third != incoming.Third {
t.Errorf("%d (%s) emission.Third (%q) != incoming.Third (%q)\n", i, name, emission.Third, incoming.Third)
}

if emission.OptionalFourth != incoming.OptionalFourth {
t.Errorf("%d (%s) emission.OptionalFourth (%q) != incoming.OptionalFourth (%q)\n", i, name, emission.OptionalFourth, incoming.OptionalFourth)
}

if emission.OptionalFifth != incoming.OptionalFifth {
t.Errorf("%d (%s) emission.OptionalFifth (%q) != incoming.OptionalFifth (%q)\n", i, name, emission.OptionalFifth, incoming.OptionalFifth)
}

if emission.OptionalSixth != incoming.OptionalSixth {
t.Errorf("%d (%s) emission.OptionalSixth (%q) != incoming.OptionalSixth (%q)\n", i, name, emission.OptionalSixth, incoming.OptionalSixth)
}

if emission.IsSetOptionalFourth() != incoming.IsSetOptionalFourth() {
t.Errorf("%d (%s) emission.IsSetOptionalFourth (%q) != incoming.IsSetOptionalFourth (%q)\n", i, name, emission.IsSetOptionalFourth(), incoming.IsSetOptionalFourth())
}

if emission.IsSetOptionalFifth() != incoming.IsSetOptionalFifth() {
t.Errorf("%d (%s) emission.IsSetOptionalFifth (%q) != incoming.IsSetOptionalFifth (%q)\n", i, name, emission.IsSetOptionalFifth(), incoming.IsSetOptionalFifth())
}

if emission.IsSetOptionalSixth() != incoming.IsSetOptionalSixth() {
t.Errorf("%d (%s) emission.IsSetOptionalSixth (%q) != incoming.IsSetOptionalSixth (%q)\n", i, name, emission.IsSetOptionalSixth(), incoming.IsSetOptionalSixth())
}
}

}

0 comments on commit 50d8cc5

Please sign in to comment.