Exemplo n.º 1
0
 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);
             }
         }
     }
 }
Exemplo n.º 2
0
        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);
                    }
                }
            }
        }