package httpaccept_test import ( "sourcecode.social/reiver/go-httpaccept" "sourcecode.social/reiver/go-httpaccept/mediarange" "testing" ) func TestHTTPAccept_String(t *testing.T) { tests := []struct{ HTTPAccept httpaccept.HTTPAccept Expected string }{ { HTTPAccept: httpaccept.Create(), Expected: "", }, { HTTPAccept: httpaccept.Create(mediarange.Create("*", "*")), Expected: "Accept: */*"+"\r\n", }, { HTTPAccept: httpaccept.Create(mediarange.Create("text", "html"), mediarange.Create("*", "*")), Expected: "Accept: text/html,*/*"+"\r\n", }, { HTTPAccept: httpaccept.Create(mediarange.Create("text", "html"), mediarange.Create("application", "xhtml+xml"), mediarange.Create("*", "*")), Expected: "Accept: text/html,application/xhtml+xml,*/*"+"\r\n", }, { HTTPAccept: httpaccept.Create(mediarange.Create("application", "activity+json")), Expected: "Accept: application/activity+json"+"\r\n", }, { HTTPAccept: httpaccept.Create(mediarange.Create("application", "activity+json"), mediarange.Create("application", "json")), Expected: "Accept: application/activity+json,application/json"+"\r\n", }, } for testNumber, test := range tests { actual := test.HTTPAccept.String() expected := test.Expected if expected != actual { t.Errorf("For test #%d, the actual (serialized) stringer value is not what was expected.", testNumber) t.Logf("HTTP-ACCEPT: %#v", test.HTTPAccept) t.Logf("EXPECTED: %q", expected) t.Logf("ACTUAL: %q", actual) continue } } }