public async Task RemoveAllRadioChannelsAsync_Should_Not_Throw_ExceptionsAsync() { // Arrange var miioDevice = new Mock <IMiioTransport>(); var miioGateway = new MiioGateway(miioDevice.Object); miioDevice.Setup(x => x.SendMessageAsync(It.Is <string>(s => s.Contains("get_channels")))) .Returns(Task.FromResult("{\"result\":{\"chs\":[" + "{\"id\":1025,\"type\":0,\"url\":\"http://192.168.1.1/radio1.m3u8\"}," + "{\"id\":1026,\"type\":0,\"url\":\"http://192.168.1.1/radio2.m3u8\"}," + "{\"id\":1027,\"type\":0,\"url\":\"http://192.168.1.1/radio3.m3u8\"}," + "]}}")); miioDevice.Setup(x => x.SendMessageAsync(It.Is <string>(s => s.Contains("remove_channels")))) .Returns(Task.FromResult("{\"result\":[\"ok\"],\"id\":2}")); // Act await miioGateway.RemoveAllRadioChannelsAsync(); // Assert var msg = "{\"id\": 2, \"method\": \"remove_channels\", \"params\": {\"chs\":[" + "{\"id\":1025,\"url\":\"http://192.168.1.1/radio1.m3u8\",\"type\":0}," + "{\"id\":1026,\"url\":\"http://192.168.1.1/radio2.m3u8\",\"type\":0}," + "{\"id\":1027,\"url\":\"http://192.168.1.1/radio3.m3u8\",\"type\":0}" + "]}}"; miioDevice.Verify(x => x.SendMessageAsync(msg), Times.Once()); }
public void GetRadioChannels_Returns_List_of_RadioChannel() { // Arrange var radioChannelsReference = new List <RadioChannel>() { new RadioChannel() { Id = 1026, Url = "http://192.168.1.1/radio2.m3u8" }, new RadioChannel() { Id = 1027, Url = "http://192.168.1.1/radio3.m3u8" }, }; var miioDevice = new Mock <IMiioTransport>(); var msg = "{\"result\":{\"chs\":[" + "{\"id\":1025,\"type\":0,\"url\":\"http://192.168.1.1/radio1.m3u8\"}," + "{\"id\":1026,\"type\":0,\"url\":\"http://192.168.1.1/radio2.m3u8\"}," + "{\"id\":1027,\"type\":0,\"url\":\"http://192.168.1.1/radio3.m3u8\"}," + "]}}"; miioDevice.Setup(x => x.SendMessage(It.IsAny <string>())).Returns(msg); var miioGateway = new MiioGateway(miioDevice.Object); // Act var radioChannels = miioGateway.GetRadioChannels(); // Assert miioDevice.Verify(x => x.SendMessage("{\"id\": 1, \"method\": \"get_channels\", \"params\": {\"start\":0}}"), Times.Once()); Assert.Equal(radioChannelsReference, radioChannels); }
public void AddRadioChannel_with_Id_less_than_1024_throws_exception() { // Arrange var miioGateway = new MiioGateway(new Mock <IMiioTransport>().Object); // Act Assert.Throws <ArgumentException>(() => miioGateway.AddRadioChannel(1000, "url here")); }
public void PlayRadio_Should_Throw_Exception_When_Wrong_Volume() { // Arrange var miioGateway = new MiioGateway(new Mock <IMiioTransport>().Object); // Act & Assert Assert.Throws <ArgumentException>(() => miioGateway.PlayRadio(1045, 120)); }
public void SetArmingBlinkingTime_Should_Not_Throw_Exceptions() { // Arrange var miioDevice = new Mock <IMiioTransport>(); miioDevice.Setup(x => x.SendMessage(It.IsAny <string>())).Returns("{\"result\":[\"ok\"],\"id\":1}"); var miioGateway = new MiioGateway(miioDevice.Object); // Act miioGateway.SetArmingBlinkingTime(40); // Assert miioDevice.Verify(x => x.SendMessage("{\"id\": 1, \"method\": \"set_device_prop\", \"params\": {\"sid\":\"lumi.0\", \"en_alarm_light\":40}}"), Times.Once()); }
public void SetArmingOn_Should_Not_Throw_Exceptions() { // Arrange var miioDevice = new Mock <IMiioTransport>(); miioDevice.Setup(x => x.SendMessage(It.IsAny <string>())).Returns("{\"result\":[\"ok\"],\"id\":1}"); var miioGateway = new MiioGateway(miioDevice.Object); // Act miioGateway.SetArmingOn(); // Assert miioDevice.Verify(x => x.SendMessage("{\"id\": 1, \"method\": \"set_arming\", \"params\": [\"on\"]}"), Times.Once()); }
public async Task SetArmingOffAsync_Should_Not_Throw_ExceptionsAsync() { // Arrange var miioDevice = new Mock <IMiioTransport>(); miioDevice.Setup(x => x.SendMessageAsync(It.IsAny <string>())).Returns(Task.FromResult("{\"result\":[\"ok\"],\"id\":1}")); var miioGateway = new MiioGateway(miioDevice.Object); // Act await miioGateway.SetArmingOffAsync(); // Assert miioDevice.Verify(x => x.SendMessageAsync("{\"id\": 1, \"method\": \"set_arming\", \"params\": [\"off\"]}"), Times.Once()); }
public void IsArmingOn_Returns_Arming_State() { // Arrange var miioDevice = new Mock <IMiioTransport>(); miioDevice.Setup(x => x.SendMessage(It.IsAny <string>())).Returns("{\"result\":[\"on\"],\"id\":1}"); var miioGateway = new MiioGateway(miioDevice.Object); // Act var arming = miioGateway.IsArmingOn(); // Assert miioDevice.Verify(x => x.SendMessage("{\"id\": 1, \"method\": \"get_arming\", \"params\": []}"), Times.Once()); Assert.True(arming); }
public void GetArmingVolume_Returns_Integer() { // Arrange var miioDevice = new Mock <IMiioTransport>(); miioDevice.Setup(x => x.SendMessage(It.IsAny <string>())).Returns("{\"result\":[10],\"id\":1}"); var miioGateway = new MiioGateway(miioDevice.Object); // Act var armingVolume = miioGateway.GetArmingVolume(); // Assert miioDevice.Verify(x => x.SendMessage("{\"id\": 1, \"method\": \"get_alarming_volume\", \"params\": []}"), Times.Once()); Assert.Equal(10, armingVolume); }
public async Task IsArmingOnAsync_Returns_Arming_StateAsync() { // Arrange var miioDevice = new Mock <IMiioTransport>(); miioDevice.Setup(x => x.SendMessageAsync(It.IsAny <string>())).Returns(Task.FromResult("{\"result\":[\"off\"],\"id\":1}")); var miioGateway = new MiioGateway(miioDevice.Object); // Act var arming = await miioGateway.IsArmingOnAsync(); // Assert miioDevice.Verify(x => x.SendMessageAsync("{\"id\": 1, \"method\": \"get_arming\", \"params\": []}"), Times.Once()); Assert.False(arming); }
public async Task GetArmingVolumeAsync_Returns_IntegerAsync() { // Arrange var miioDevice = new Mock <IMiioTransport>(); miioDevice.Setup(x => x.SendMessageAsync(It.IsAny <string>())).Returns(Task.FromResult("{\"result\":[20],\"id\":1}")); var miioGateway = new MiioGateway(miioDevice.Object); // Act var armingVolume = await miioGateway.GetArmingVolumeAsync(); // Assert miioDevice.Verify(x => x.SendMessageAsync("{\"id\": 1, \"method\": \"get_alarming_volume\", \"params\": []}"), Times.Once()); Assert.Equal(20, armingVolume); }
public void GetArmingBlinkingTime_Returns_Integer() { // Arrange var miioDevice = new Mock <IMiioTransport>(); miioDevice.Setup(x => x.SendMessage(It.IsAny <string>())).Returns("{\"result\":[15],\"id\":1}"); var miioGateway = new MiioGateway(miioDevice.Object); // Act var armingBlinkingTime = miioGateway.GetArmingBlinkingTime(); // Assert miioDevice.Verify(x => x.SendMessage("{\"id\": 1, \"method\": \"get_device_prop\", \"params\": [\"lumi.0\",\"en_alarm_light\"]}"), Times.Once()); Assert.Equal(15, armingBlinkingTime); }
public async Task GetArmingLastTimeTriggeredTimestampAsync_Returns_IntegerAsync() { // Arrange var miioDevice = new Mock <IMiioTransport>(); miioDevice.Setup(x => x.SendMessageAsync(It.IsAny <string>())).Returns(Task.FromResult("{\"result\":[1609150074],\"id\":1}")); var miioGateway = new MiioGateway(miioDevice.Object); // Act var timestamp = await miioGateway.GetArmingLastTimeTriggeredTimestampAsync(); // Assert miioDevice.Verify(x => x.SendMessageAsync("{\"id\": 1, \"method\": \"get_arming_time\", \"params\": []}"), Times.Once()); Assert.Equal(1609150074, timestamp); }
public void PlayRadio_Should_Throw_Exception_When_Wrong_ChannelId() { // Arrange var miioDevice = new Mock <IMiioTransport>(); var miioGateway = new MiioGateway(miioDevice.Object); miioDevice.Setup(x => x.SendMessage(It.Is <string>(s => s.Contains("get_channels")))) .Returns("{\"result\":{\"chs\":[" + "{\"id\":1025,\"type\":0,\"url\":\"http://192.168.1.1/radio1.m3u8\"}," + "{\"id\":1026,\"type\":0,\"url\":\"http://192.168.1.1/radio2.m3u8\"}," + "{\"id\":1027,\"type\":0,\"url\":\"http://192.168.1.1/radio3.m3u8\"}," + "]}}"); // Act & Assert Assert.Throws <ArgumentException>(() => miioGateway.PlayRadio(1045, 50)); }
public async Task StopRadioAsync_Should_Not_Throw_ExceptionsAsync() { // Arrange var miioDevice = new Mock <IMiioTransport>(); var miioGateway = new MiioGateway(miioDevice.Object); miioDevice.Setup(x => x.SendMessageAsync(It.Is <string>(s => s.Contains("play_fm")))) .Returns(Task.FromResult("{\"result\":[\"ok\"],\"id\":1}")); // Act await miioGateway.StopRadioAsync(); // Assert var msg = "{\"id\": 1, \"method\": \"play_fm\", \"params\": [\"off\"]}"; miioDevice.Verify(x => x.SendMessageAsync(msg), Times.Once()); }
public void AddRadioChannel_with_existing_Id_throws_exception() { // Arrange var miioDevice = new Mock <IMiioTransport>(); var miioGateway = new MiioGateway(miioDevice.Object); var msg = "{\"result\":{\"chs\":[" + "{\"id\":1025,\"type\":0,\"url\":\"http://192.168.1.1/radio1.m3u8\"}," + "{\"id\":1045,\"type\":0,\"url\":\"http://192.168.1.1/radio.m3u8\"}," + "{\"id\":1027,\"type\":0,\"url\":\"http://192.168.1.1/radio3.m3u8\"}," + "]}}"; miioDevice.Setup(x => x.SendMessage(It.IsAny <string>())).Returns(msg); // Act Assert.Throws <ArgumentException>(() => miioGateway.AddRadioChannel(1045, "http://192.168.1.1/radio.m3u8")); }
public void AddRadioChannel_Should_Not_Throw_Exceptions() { // Arrange var miioDevice = new Mock <IMiioTransport>(); var miioGateway = new MiioGateway(miioDevice.Object); var msg = "{\"id\": 2, \"method\": \"add_channels\", \"params\": {\"chs\":[{\"id\":1045,\"url\":\"http://192.168.1.1/radio4.m3u8\",\"type\":0}]}}"; miioDevice.Setup(x => x.SendMessage(It.Is <string>(s => s.Contains("get_channels")))) .Returns("{\"result\":{\"chs\":[" + "{\"id\":1025,\"type\":0,\"url\":\"http://192.168.1.1/radio1.m3u8\"}," + "{\"id\":1026,\"type\":0,\"url\":\"http://192.168.1.1/radio2.m3u8\"}," + "{\"id\":1027,\"type\":0,\"url\":\"http://192.168.1.1/radio3.m3u8\"}," + "]}}"); miioDevice.Setup(x => x.SendMessage(It.Is <string>(s => s.Contains("add_channels")))) .Returns("{\"result\":[\"ok\"],\"id\":2}"); // Act miioGateway.AddRadioChannel(1045, "http://192.168.1.1/radio4.m3u8"); // Assert miioDevice.Verify(x => x.SendMessage(msg), Times.Once()); }