public void Publisher_SearchResponse_NoResponseToBlankSearchTarget() { var rootDevice = CreateValidRootDevice(); var server = new MockCommsServer(); using (var publisher = new TestDevicePublisher(server)) { publisher.AddDevice(rootDevice); ReceivedUdpData searchRequest = GetSearchRequestMessage(String.Empty); server.MockReceiveMessage(searchRequest); server.WaitForMockMessage(1500); var searchResponses = GetSentMessages(server.SentMessages); Assert.AreEqual(0, searchResponses.Count()); } }
public void Publisher_SearchResponse_NoResponseWithMissngMXHeader() { var rootDevice = CreateValidRootDevice(); var server = new MockCommsServer(); using (var publisher = new TestDevicePublisher(server)) { publisher.SupportPnpRootDevice = false; publisher.AddDevice(rootDevice); ReceivedUdpData searchRequest = GetSearchRequestMessageWithoutMXHeader(SsdpConstants.UpnpDeviceTypeRootDevice); server.MockReceiveMessage(searchRequest); server.WaitForMockMessage(1500); var searchResponses = GetSentMessages(server.SentMessages); Assert.AreEqual(0, searchResponses.Count()); } }
public void Publisher_SearchResponse_DoesNotRespondToRequestWithEmptyMXHeaderIfPnpSupportDisabled() { var rootDevice = CreateValidRootDevice(); var parentDevice = CreateValidEmbeddedDevice(rootDevice); rootDevice.AddDevice(parentDevice); var childDevice = CreateValidEmbeddedDevice(rootDevice); parentDevice.AddDevice(childDevice); var server = new MockCommsServer(); using (var publisher = new TestDevicePublisher(server)) { publisher.SupportPnpRootDevice = false; publisher.AddDevice(rootDevice); ReceivedUdpData searchRequest = GetSearchRequestMessageWithCustomMXHeader(childDevice.Udn, String.Empty); server.MockReceiveMessage(searchRequest); server.MockReceiveMessage(searchRequest); server.WaitForMockMessage(1500); System.Threading.Thread.Sleep(500); var searchResponses = GetSentMessages(server.SentMessages); var uuidResponses = GetResponses(searchResponses, childDevice.Udn); Assert.AreEqual(0, uuidResponses.Count()); } }
public void Publisher_SearchResponse_IgnoresDuplicateSearchRequest() { var rootDevice = CreateValidRootDevice(); var server = new MockCommsServer(); using (var publisher = new TestDevicePublisher(server)) { publisher.SupportPnpRootDevice = false; publisher.AddDevice(rootDevice); ReceivedUdpData searchRequest = GetSearchRequestMessage(SsdpConstants.UpnpDeviceTypeRootDevice); server.MockReceiveMessage(searchRequest); server.MockReceiveMessage(searchRequest); server.WaitForMockMessage(1500); System.Threading.Thread.Sleep(500); var searchResponses = GetSentMessages(server.SentMessages); Assert.AreEqual(0, searchResponses.Where((r) => !r.IsSuccessStatusCode).Count()); Assert.IsTrue(GetResponses(searchResponses, SsdpConstants.UpnpDeviceTypeRootDevice).Count() == 1); } }
public void Publisher_SearchResponse_AddCustomHeaders() { var rootDevice = CreateValidRootDevice(); var testHeader = new CustomHttpHeader("machinename", Environment.MachineName); rootDevice.CustomResponseHeaders.Add(testHeader); var server = new MockCommsServer(); using (var publisher = new TestDevicePublisher(server)) { publisher.SupportPnpRootDevice = false; publisher.AddDevice(rootDevice); ReceivedUdpData searchRequest = GetSearchRequestMessage(SsdpConstants.UpnpDeviceTypeRootDevice); server.MockReceiveMessage(searchRequest); server.WaitForMockMessage(1500); var searchResponses = GetSentMessages(server.SentMessages); Assert.AreEqual(0, searchResponses.Where((r) => !r.IsSuccessStatusCode).Count()); Assert.IsTrue(GetResponses(searchResponses, SsdpConstants.UpnpDeviceTypeRootDevice).Count() >= 1); Assert.IsTrue(GetResponses(searchResponses, SsdpConstants.PnpDeviceTypeRootDevice).Count() == 0); Assert.IsTrue(GetResponses(searchResponses, rootDevice.Udn).Count() >= 1); Assert.IsTrue(GetResponses(searchResponses, rootDevice.FullDeviceType).Count() >= 1); Assert.AreEqual(0, searchResponses.Where((r) => !r.Headers.GetValues("USN").First().StartsWith(rootDevice.Udn)).Count()); Assert.AreEqual(0, searchResponses.Where((r) => !r.Headers.GetValues(testHeader.Name).First().StartsWith(testHeader.Value)).Count()); } }
public void Publisher_SearchResponse_SendsGrandchildResponses() { var rootDevice = CreateValidRootDevice(); var parentDevice = CreateValidEmbeddedDevice(rootDevice); rootDevice.AddDevice(parentDevice); var childDevice = CreateValidEmbeddedDevice(rootDevice); parentDevice.AddDevice(childDevice); var server = new MockCommsServer(); using (var publisher = new TestDevicePublisher(server)) { publisher.SupportPnpRootDevice = false; publisher.AddDevice(rootDevice); ReceivedUdpData searchRequest = GetSearchRequestMessage(childDevice.Udn); server.MockReceiveMessage(searchRequest); server.WaitForMockMessage(1500); System.Threading.Thread.Sleep(100); var searchResponses = GetSentMessages(server.SentMessages); var uuidResponses = GetResponses(searchResponses, childDevice.Udn); Assert.AreEqual(1, uuidResponses.Count()); } }
public void Publisher_SearchResponse_RespondsToUdnSearch() { var rootDevice = CreateValidRootDevice(); var server = new MockCommsServer(); using (var publisher = new TestDevicePublisher(server)) { publisher.AddDevice(rootDevice); ReceivedUdpData searchRequest = GetSearchRequestMessage(rootDevice.Udn); server.MockReceiveMessage(searchRequest); server.WaitForMockMessage(1500); System.Threading.Thread.Sleep(100); var searchResponses = GetSentMessages(server.SentMessages); Assert.AreEqual(0, searchResponses.Where((r) => !r.IsSuccessStatusCode).Count()); Assert.IsTrue(GetResponses(searchResponses, SsdpConstants.UpnpDeviceTypeRootDevice).Count() >= 1); Assert.IsTrue(GetResponses(searchResponses, SsdpConstants.PnpDeviceTypeRootDevice).Count() >= 1); Assert.IsTrue(GetResponses(searchResponses, rootDevice.Udn).Count() >= 1); Assert.IsTrue(GetResponses(searchResponses, rootDevice.FullDeviceType).Count() >= 1); Assert.AreEqual(0, searchResponses.Where((r) => !r.Headers.GetValues("USN").First().StartsWith(rootDevice.Udn)).Count()); } }
public void Publisher_SearchResponse_RandomisesMxHeaderGreaterThan120() { var rootDevice = CreateValidRootDevice(); var server = new MockCommsServer(); using (var publisher = new TestDevicePublisher(server)) { publisher.SupportPnpRootDevice = false; publisher.AddDevice(rootDevice); ReceivedUdpData searchRequest = GetSearchRequestMessageWithCustomMXHeader(rootDevice.Udn, "125"); server.MockReceiveMessage(searchRequest); Assert.IsTrue(server.WaitForMockMessage(120000)); System.Threading.Thread.Sleep(500); var searchResponses = GetSentMessages(server.SentMessages); Assert.AreEqual(3, searchResponses.Count()); } }
public void Publisher_SearchResponse_NoResponseWithNonNumericMXHeader() { var rootDevice = CreateValidRootDevice(); var server = new MockCommsServer(); using (var publisher = new TestDevicePublisher(server)) { publisher.SupportPnpRootDevice = false; publisher.AddDevice(rootDevice); ReceivedUdpData searchRequest = GetSearchRequestMessageWithCustomMXHeader(rootDevice.Udn, "-1"); server.MockReceiveMessage(searchRequest); server.WaitForMockMessage(1500); var searchResponses = GetSentMessages(server.SentMessages); Assert.AreEqual(0, searchResponses.Count()); } }