public void DescriptionCacheTest() { var factory = new DummyDeserializerFactory (); using (var server = new Server (CreateRoot ())) { using (var client = new Client (factory.CreateDeserializer)) { client.Browse (new ServiceType ("schemas-upnp-org", "mono-upnp-test-service", new Version (1, 0))); client.Browse (new ServiceType ("schemas-upnp-org", "mono-upnp-test-service", new Version (2, 0))); flag = false; client.ServiceAdded += (sender, args) => { lock (mutex) { var service = args.Service.GetService (); Assert.IsNotNull (service); if (flag) { Monitor.Pulse (mutex); } else { flag = true; } } }; lock (mutex) { server.Start (); if (!Monitor.Wait (mutex, TimeSpan.FromSeconds (30))) { Assert.Fail ("The server announcement timed out."); } Assert.AreEqual (1, factory.InstantiationCount); } } } }
public void DescriptionCacheTest() { var factory = new DummyDeserializerFactory(); using (var server = new Server(CreateRoot())) { using (var client = new Client(factory.CreateDeserializer)) { client.Browse(new ServiceType("schemas-upnp-org", "mono-upnp-test-service", new Version(1, 0))); client.Browse(new ServiceType("schemas-upnp-org", "mono-upnp-test-service", new Version(2, 0))); flag = false; client.ServiceAdded += (sender, args) => { lock (mutex) { var service = args.Service.GetService(); Assert.IsNotNull(service); if (flag) { Monitor.Pulse(mutex); } else { flag = true; } } }; lock (mutex) { server.Start(); if (!Monitor.Wait(mutex, TimeSpan.FromSeconds(30))) { Assert.Fail("The server announcement timed out."); } Assert.AreEqual(1, factory.InstantiationCount); } } } }