コード例 #1
0
        public void NetworkChangeEventRaisedWhenAnyNetworkChanges()
        {
            TestableNetworkManager manager = new TestableNetworkManager();

            manager.Add(new Network("Home", "http://myserver"));

            int eventRaisedCount = 0;

            manager.NetworkConnectionStatusChanged += delegate(object sender, NetworkConnectionStatusChangedEventArgs e)
            {
                eventRaisedCount++;
            };
            MockNetworkStatusStrategy statusStrategy = manager.MockStatusStrategy;

            statusStrategy.NetworkStatus["http://myserver"] = false;
            manager.UpdateStatus();

            statusStrategy.NetworkStatus["http://myserver"] = false;
            manager.UpdateStatus();

            statusStrategy.NetworkStatus["http://myserver"] = true;
            manager.UpdateStatus();

            Assert.AreEqual(3, eventRaisedCount);
        }
コード例 #2
0
        public void NetworkChangeEventRaisedWhenActiveNetworkChanges()
        {
            TestableNetworkManager    manager        = CreateNetworkManager();
            MockNetworkStatusStrategy statusStrategy = manager.MockStatusStrategy;

            statusStrategy.NetworkStatus["http://myserver"] = false;
            Network homeNetwork = manager["Home"];

            manager.UpdateStatus();

            bool    handlerCalled   = false;
            Network reportedNetwork = null;

            manager.NetworkConnectionStatusChanged += delegate(object sender, NetworkConnectionStatusChangedEventArgs e)
            {
                handlerCalled   = true;
                reportedNetwork = e.Network;
            };

            // Connect a network
            statusStrategy.NetworkStatus["http://myserver"] = true;
            manager.UpdateStatus();


            Assert.AreEqual(3, manager.ActiveNetworks.Count);
            Assert.IsTrue(manager.ActiveNetworks.Contains(homeNetwork));
            Assert.IsTrue(handlerCalled);
            Assert.AreSame(homeNetwork, reportedNetwork);
        }
コード例 #3
0
        public void CanAddNetwork()
        {
            TestableNetworkManager manager = new TestableNetworkManager();

            Assert.AreEqual(0, manager.Count);

            manager.Add(new Network("TestNetwork", "http://test"));

            Assert.AreEqual(1, manager.Count);
        }
コード例 #4
0
        private TestableNetworkManager CreateNetworkManager()
        {
            TestableNetworkManager manager = new TestableNetworkManager();

            manager.Add(new Network("Internet", "http://www.contoso.com"));
            manager.Add(new Network("Work", "http://intranet"));
            manager.Add(new Network("Home", "http://myserver"));

            return(manager);
        }
コード例 #5
0
        public void ActiveNetworksReturnsConnectedNetworksList()
        {
            TestableNetworkManager    manager        = CreateNetworkManager();
            MockNetworkStatusStrategy statusStrategy = manager.MockStatusStrategy;

            statusStrategy.NetworkStatus["http://myserver"] = false;
            manager.UpdateStatus();

            ReadOnlyCollection <Network> networks = manager.ActiveNetworks;

            Assert.AreEqual(2, networks.Count);
            Assert.AreEqual("Internet", networks[0].Name);
            Assert.AreEqual("Work", networks[1].Name);
        }
コード例 #6
0
        public void TestUpdateStatus()
        {
            TestableNetworkManager    manager        = CreateNetworkManager();
            MockNetworkStatusStrategy statusStrategy = manager.MockStatusStrategy;

            manager.UpdateStatus();

            ReadOnlyCollection <Network> networks = manager.ActiveNetworks;

            Assert.AreEqual(3, networks.Count);

            statusStrategy.NetworkStatus["http://myserver"]        = false;
            statusStrategy.NetworkStatus["http://www.contoso.com"] = false;

            manager.UpdateStatus();

            networks = manager.ActiveNetworks;

            Assert.AreEqual(1, networks.Count);
            Assert.AreEqual("Work", manager.ActiveNetworks[0].Name);
        }