| package dbus |
| |
| import ( |
| "reflect" |
| "testing" |
| ) |
| |
| func TestStoreStringToInterface(t *testing.T) { |
| var dest interface{} |
| err := Store([]interface{}{"foobar"}, &dest) |
| if err != nil { |
| t.Fatal(err) |
| } |
| _ = dest.(string) |
| } |
| |
| func TestStoreVariantToInterface(t *testing.T) { |
| src := MakeVariant("foobar") |
| var dest interface{} |
| err := Store([]interface{}{src}, &dest) |
| if err != nil { |
| t.Fatal(err) |
| } |
| _ = dest.(string) |
| } |
| |
| func TestStoreMapStringToMapInterface(t *testing.T) { |
| src := map[string]string{"foo": "bar"} |
| dest := map[string]interface{}{} |
| err := Store([]interface{}{src}, &dest) |
| if err != nil { |
| t.Fatal(err) |
| } |
| _ = dest["foo"].(string) |
| } |
| |
| func TestStoreMapVariantToMapInterface(t *testing.T) { |
| src := map[string]Variant{"foo": MakeVariant("foobar")} |
| dest := map[string]interface{}{} |
| err := Store([]interface{}{src}, &dest) |
| if err != nil { |
| t.Fatal(err) |
| } |
| _ = dest["foo"].(string) |
| } |
| |
| func TestStoreSliceStringToSliceInterface(t *testing.T) { |
| src := []string{"foo"} |
| dest := []interface{}{} |
| err := Store([]interface{}{src}, &dest) |
| if err != nil { |
| t.Fatal(err) |
| } |
| _ = dest[0].(string) |
| } |
| |
| func TestStoreSliceVariantToSliceInterface(t *testing.T) { |
| src := []Variant{MakeVariant("foo")} |
| dest := []interface{}{} |
| err := Store([]interface{}{src}, &dest) |
| if err != nil { |
| t.Fatal(err) |
| } |
| _ = dest[0].(string) |
| } |
| |
| func TestStoreSliceVariantToSliceInterfaceMulti(t *testing.T) { |
| src := []Variant{MakeVariant("foo"), MakeVariant(int32(1))} |
| dest := []interface{}{} |
| err := Store([]interface{}{src}, &dest) |
| if err != nil { |
| t.Fatal(err) |
| } |
| _ = dest[0].(string) |
| _ = dest[1].(int32) |
| } |
| |
| func TestStoreNested(t *testing.T) { |
| src := map[string]interface{}{ |
| "foo": []interface{}{"1", "2", "3", "5", |
| map[string]interface{}{ |
| "bar": "baz", |
| }, |
| }, |
| "bar": map[string]interface{}{ |
| "baz": "quux", |
| "quux": "quuz", |
| }, |
| } |
| dest := map[string]interface{}{} |
| err := Store([]interface{}{src}, &dest) |
| if err != nil { |
| t.Fatal(err) |
| } |
| if !reflect.DeepEqual(src, dest) { |
| t.Errorf("not equal: got '%v', want '%v'", |
| dest, src) |
| } |
| } |