forked from Elara6331/itd
		
	Add tests
This commit is contained in:
		
							
								
								
									
										84
									
								
								mpris/mpris_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										84
									
								
								mpris/mpris_test.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,84 @@ | ||||
| package mpris | ||||
|  | ||||
| import ( | ||||
| 	"reflect" | ||||
| 	"testing" | ||||
|  | ||||
| 	"github.com/godbus/dbus/v5" | ||||
| ) | ||||
|  | ||||
| // TestParsePropertiesChanged checks the parsePropertiesChanged function to | ||||
| // make sure it correctly parses a DBus PropertiesChanged signal. | ||||
| func TestParsePropertiesChanged(t *testing.T) { | ||||
| 	// Create a DBus message | ||||
| 	msg := &dbus.Message{ | ||||
| 		Body: []interface{}{ | ||||
| 			"com.example.Interface", | ||||
| 			map[string]dbus.Variant{ | ||||
| 				"Property1": dbus.MakeVariant(true), | ||||
| 				"Property2": dbus.MakeVariant("Hello, world!"), | ||||
| 			}, | ||||
| 			[]string{}, | ||||
| 		}, | ||||
| 	} | ||||
|  | ||||
| 	// Parse the message | ||||
| 	iface, changed, ok := parsePropertiesChanged(msg) | ||||
| 	if !ok { | ||||
| 		t.Error("Expected parsePropertiesChanged to return true, but got false") | ||||
| 	} | ||||
|  | ||||
| 	// Check the parsed values | ||||
| 	expectedIface := "com.example.Interface" | ||||
| 	if iface != expectedIface { | ||||
| 		t.Errorf("Expected iface to be %q, but got %q", expectedIface, iface) | ||||
| 	} | ||||
|  | ||||
| 	expectedChanged := map[string]dbus.Variant{ | ||||
| 		"Property1": dbus.MakeVariant(true), | ||||
| 		"Property2": dbus.MakeVariant("Hello, world!"), | ||||
| 	} | ||||
| 	if !reflect.DeepEqual(changed, expectedChanged) { | ||||
| 		t.Errorf("Expected changed to be %v, but got %v", expectedChanged, changed) | ||||
| 	} | ||||
|  | ||||
| 	// Test a message with an invalid number of arguments | ||||
| 	msg = &dbus.Message{ | ||||
| 		Body: []interface{}{ | ||||
| 			"com.example.Interface", | ||||
| 		}, | ||||
| 	} | ||||
| 	_, _, ok = parsePropertiesChanged(msg) | ||||
| 	if ok { | ||||
| 		t.Error("Expected parsePropertiesChanged to return false, but got true") | ||||
| 	} | ||||
|  | ||||
| 	// Test a message with an invalid first argument | ||||
| 	msg = &dbus.Message{ | ||||
| 		Body: []interface{}{ | ||||
| 			123, | ||||
| 			map[string]dbus.Variant{ | ||||
| 				"Property1": dbus.MakeVariant(true), | ||||
| 				"Property2": dbus.MakeVariant("Hello, world!"), | ||||
| 			}, | ||||
| 			[]string{}, | ||||
| 		}, | ||||
| 	} | ||||
| 	_, _, ok = parsePropertiesChanged(msg) | ||||
| 	if ok { | ||||
| 		t.Error("Expected parsePropertiesChanged to return false, but got true") | ||||
| 	} | ||||
|  | ||||
| 	// Test a message with an invalid second argument | ||||
| 	msg = &dbus.Message{ | ||||
| 		Body: []interface{}{ | ||||
| 			"com.example.Interface", | ||||
| 			123, | ||||
| 			[]string{}, | ||||
| 		}, | ||||
| 	} | ||||
| 	_, _, ok = parsePropertiesChanged(msg) | ||||
| 	if ok { | ||||
| 		t.Error("Expected parsePropertiesChanged to return false, but got true") | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user