public void RemovesFirewallRulesEvenWithNoPort()
            {
                var tcpPortManager = new LocalTcpPortManager(FirewallManager, NetShRunner);

                tcpPortManager.ReleaseLocalPort(null, "userName");

                NetShRunner.DidNotReceive().DeleteRule(Arg.Any <int>());
                FirewallManager.Received().ClosePort(Arg.Is("userName"));
            }
            public void ThrowsWardenExceptionIfNetShFails()
            {
                var tcpPortManager = new LocalTcpPortManager(FirewallManager, NetShRunner);

                NetShRunner.DeleteRule(Arg.Any <int>()).ReturnsForAnyArgs(false);

                var exception = Record.Exception(() => tcpPortManager.ReleaseLocalPort(8888, "userName"));

                Assert.IsType <Exception>(exception);
            }
            public void CallsNetShRunnerFirewallManagerToReleasePort()
            {
                var tcpPortManager = new LocalTcpPortManager(FirewallManager, NetShRunner);

                NetShRunner.DeleteRule(Arg.Any <int>()).ReturnsForAnyArgs(true);

                tcpPortManager.ReleaseLocalPort(8888, "userName");

                NetShRunner.Received().DeleteRule(Arg.Is(8888));
                FirewallManager.Received().ClosePort(Arg.Is("userName"));
            }
            public void ThrowsArgumentNullExceptionIfUserNameIsNull()
            {
                var tcpPortManager = new LocalTcpPortManager(null, null);

                Assert.Throws <ArgumentNullException>(() => tcpPortManager.ReleaseLocalPort(100, null));
            }