...

Source file src/github.com/godbus/dbus/v5/store_test.go

Documentation: github.com/godbus/dbus/v5

     1  package dbus
     2  
     3  import (
     4  	"reflect"
     5  	"testing"
     6  )
     7  
     8  func TestStoreStringToInterface(t *testing.T) {
     9  	var dest interface{}
    10  	err := Store([]interface{}{"foobar"}, &dest)
    11  	if err != nil {
    12  		t.Fatal(err)
    13  	}
    14  	_ = dest.(string)
    15  }
    16  
    17  func TestStoreVariantToInterface(t *testing.T) {
    18  	src := MakeVariant("foobar")
    19  	var dest interface{}
    20  	err := Store([]interface{}{src}, &dest)
    21  	if err != nil {
    22  		t.Fatal(err)
    23  	}
    24  	_ = dest.(string)
    25  }
    26  
    27  func TestStoreMapStringToMapInterface(t *testing.T) {
    28  	src := map[string]string{"foo": "bar"}
    29  	dest := map[string]interface{}{}
    30  	err := Store([]interface{}{src}, &dest)
    31  	if err != nil {
    32  		t.Fatal(err)
    33  	}
    34  	_ = dest["foo"].(string)
    35  }
    36  
    37  func TestStoreMapVariantToMapInterface(t *testing.T) {
    38  	src := map[string]Variant{"foo": MakeVariant("foobar")}
    39  	dest := map[string]interface{}{}
    40  	err := Store([]interface{}{src}, &dest)
    41  	if err != nil {
    42  		t.Fatal(err)
    43  	}
    44  	_ = dest["foo"].(string)
    45  }
    46  
    47  func TestStoreSliceStringToSliceInterface(t *testing.T) {
    48  	src := []string{"foo"}
    49  	dest := []interface{}{}
    50  	err := Store([]interface{}{src}, &dest)
    51  	if err != nil {
    52  		t.Fatal(err)
    53  	}
    54  	_ = dest[0].(string)
    55  }
    56  
    57  func TestStoreSliceVariantToSliceInterface(t *testing.T) {
    58  	src := []Variant{MakeVariant("foo")}
    59  	dest := []interface{}{}
    60  	err := Store([]interface{}{src}, &dest)
    61  	if err != nil {
    62  		t.Fatal(err)
    63  	}
    64  	_ = dest[0].(string)
    65  }
    66  
    67  func TestStoreSliceVariantToSliceInterfaceMulti(t *testing.T) {
    68  	src := []Variant{MakeVariant("foo"), MakeVariant(int32(1))}
    69  	dest := []interface{}{}
    70  	err := Store([]interface{}{src}, &dest)
    71  	if err != nil {
    72  		t.Fatal(err)
    73  	}
    74  	_ = dest[0].(string)
    75  	_ = dest[1].(int32)
    76  }
    77  
    78  func TestStoreNested(t *testing.T) {
    79  	src := map[string]interface{}{
    80  		"foo": []interface{}{"1", "2", "3", "5",
    81  			map[string]interface{}{
    82  				"bar": "baz",
    83  			},
    84  		},
    85  		"bar": map[string]interface{}{
    86  			"baz":  "quux",
    87  			"quux": "quuz",
    88  		},
    89  	}
    90  	dest := map[string]interface{}{}
    91  	err := Store([]interface{}{src}, &dest)
    92  	if err != nil {
    93  		t.Fatal(err)
    94  	}
    95  	if !reflect.DeepEqual(src, dest) {
    96  		t.Errorf("not equal: got '%v', want '%v'",
    97  			dest, src)
    98  	}
    99  }
   100  
   101  func TestStoreSmallerSliceToLargerSlice(t *testing.T) {
   102  	src := []string{"baz"}
   103  	dest := []interface{}{"foo", "bar"}
   104  	err := Store([]interface{}{src}, &dest)
   105  	if err != nil {
   106  		t.Fatal(err)
   107  	}
   108  	if len(dest) != 1 {
   109  		t.Fatal("Expected dest slice to shrink")
   110  	}
   111  	if dest[0].(string) != "baz" {
   112  		t.Fatal("Wrong element saved in dest slice")
   113  	}
   114  }
   115  

View as plain text