package testtools import ( "github.com/cyrilix/robocar-base/mqttdevice" "testing" ) func TestFakePublisher_Publish(t *testing.T) { p := NewFakePublisher() cases := []struct { topic string topicPublished string value mqttdevice.MqttValue expected string }{ {"test/topic1", "test/topic1", mqttdevice.NewMqttValue(1), "1"}, {"test/topic2", "test/invalid", mqttdevice.NewMqttValue(1), ""}, } for _, c := range cases { p.Publish(c.topic, c.value) val := p.PublishedEvent(c.topicPublished) if v, _ := val.StringValue(); v != c.expected { t.Errorf("FakePublisher.Publish(%v, %v): %v, wants %v", c.topic, string(c.value), v, c.expected) } } }