public void TestOkCommand_InitalizesResult()
        {
            var objectUnderTest = new PortManagerViewModel(_mockedCloseAction, new Instance());

            objectUnderTest.OkCommand.Execute(null);

            Assert.IsNotNull(objectUnderTest.Result);
        }
        public void TestConstructor_PortEnabledByTag()
        {
            PortInfo enabledPort     = PortManagerViewModel.s_supportedPorts[0];
            Instance instance        = PortTestHelpers.GetInstanceWithEnabledPort(enabledPort);
            var      objectUnderTest = new PortManagerViewModel(_mockedCloseAction, instance);

            Assert.AreEqual(enabledPort, objectUnderTest.Ports.Single(p => p.IsEnabled).PortInfo);
        }
        public void TestOkCommand_ClosesWindow()
        {
            var objectUnderTest = new PortManagerViewModel(_mockedCloseAction, new Instance());

            objectUnderTest.OkCommand.Execute(null);

            Mock.Get(_mockedCloseAction).Verify(c => c());
        }
        public void TestOkCommand_ResultIsEmpty()
        {
            var objectUnderTest = new PortManagerViewModel(_mockedCloseAction, new Instance());

            objectUnderTest.OkCommand.Execute(null);

            CollectionAssert.That.IsEmpty(objectUnderTest.Result.PortsToDisable);
            CollectionAssert.That.IsEmpty(objectUnderTest.Result.PortsToEnable);
        }
        public void TestConstructor_InitializesPorts()
        {
            var instance        = new Instance();
            var objectUnderTest = new PortManagerViewModel(_mockedCloseAction, instance);

            CollectionAssert.AreEqual(
                PortManagerViewModel.s_supportedPorts.ToList(),
                objectUnderTest.Ports.Select(p => p.PortInfo).ToList());
            Assert.IsTrue(objectUnderTest.Ports.All(p => p.Instance == instance));
        }
        public void TestOkCommand_ResultHasPortToEnable()
        {
            var objectUnderTest = new PortManagerViewModel(_mockedCloseAction, new Instance());

            PortModel portToEnable = objectUnderTest.Ports[0];

            portToEnable.IsEnabled = true;
            objectUnderTest.OkCommand.Execute(null);

            FirewallPort firewallPortToEnable = objectUnderTest.Result.PortsToEnable.Single();

            Assert.AreEqual(portToEnable.PortInfo.Port, firewallPortToEnable.Port);
            Assert.AreEqual(portToEnable.GetPortInfoTag(), firewallPortToEnable.Name);
        }
        public void TestOkCommand_ResultHasPortToDisable()
        {
            PortInfo     enabledPort     = PortManagerViewModel.s_supportedPorts[0];
            const string instanceName    = "instance-name";
            Instance     instance        = PortTestHelpers.GetInstanceWithEnabledPort(enabledPort, instanceName);
            var          objectUnderTest = new PortManagerViewModel(_mockedCloseAction, instance);

            objectUnderTest.Ports.Single(p => p.IsEnabled).IsEnabled = false;
            objectUnderTest.OkCommand.Execute(null);

            FirewallPort portToDisable = objectUnderTest.Result.PortsToDisable.Single();

            Assert.AreEqual(enabledPort.Port, portToDisable.Port);
            Assert.AreEqual(enabledPort.GetTag(instanceName), portToDisable.Name);
        }
        public void TestNavigateToCloudConsoleCommand_OpensBrowserFromProject()
        {
            const string expectedProjectID    = "expected-project-id";
            var          credentialsStoreMock = new Mock <ICredentialsStore>();
            var          browerServiceMock    = new Mock <IBrowserService>();

            credentialsStoreMock.Setup(cs => cs.CurrentProjectId).Returns(expectedProjectID);
            PackageMock.Setup(p => p.GetMefServiceLazy <ICredentialsStore>()).Returns(credentialsStoreMock.ToLazy());
            PackageMock.Setup(p => p.GetMefServiceLazy <IBrowserService>()).Returns(browerServiceMock.ToLazy());

            var objectUnderTest = new PortManagerViewModel(_mockedCloseAction, new Instance());

            objectUnderTest.NavigateToCloudConsoleCommand.Execute(null);

            browerServiceMock.Verify(
                b => b.OpenBrowser(string.Format(PortManagerViewModel.ConsoleFirewallsUrlFormat, expectedProjectID)));
        }
        public void TestConstructor_NoPortsEnabled()
        {
            var objectUnderTest = new PortManagerViewModel(_mockedCloseAction, new Instance());

            Assert.IsFalse(objectUnderTest.Ports.Any(p => p.IsEnabled));
        }
        public void TestConstructor_InitalizesNavigateToCloudConsoleCommand()
        {
            var objectUnderTest = new PortManagerViewModel(_mockedCloseAction, new Instance());

            Assert.IsTrue(objectUnderTest.NavigateToCloudConsoleCommand.CanExecute(null));
        }