public void TestCreateResult()
        {
            const string        resultProjectId     = "result-project-id";
            AspNetVersion       resultVersion       = AspNetVersion.AspNetCore11;
            const FrameworkType resultFrameworkType = FrameworkType.NetCore;

            _targetSdkVersions.Add("2.0.0");
            _targetSdkVersions.Add("1.0.0");

            var objectUnderTest = new AspNetCoreTemplateChooserViewModel(_closeWindowMock.Object)
            {
                SelectedFramework = resultFrameworkType,
                SelectedVersion   = resultVersion,
                GcpProjectId      = resultProjectId,
                IsWebApi          = true
            };

            objectUnderTest.OkCommand.Execute(null);

            Assert.IsNotNull(objectUnderTest.Result);
            Assert.AreEqual(resultProjectId, objectUnderTest.Result.GcpProjectId);
            Assert.AreEqual(resultFrameworkType, objectUnderTest.Result.SelectedFramework);
            Assert.AreEqual(resultVersion, objectUnderTest.Result.SelectedVersion);
            Assert.AreEqual(AppType.WebApi, objectUnderTest.Result.AppType);
        }
        public void TestSetSelectedVersion()
        {
            var objectUnderTest = new AspNetCoreTemplateChooserViewModel(_closeWindowMock.Object);

            objectUnderTest.SelectedVersion = AspNetVersion.AspNetCore11;

            Assert.AreEqual(AspNetVersion.AspNetCore11, objectUnderTest.SelectedVersion);
        }
        public void TestInitialConditionsVs2015MissingNetCoreSdk()
        {
            PackageMock.Setup(p => p.VsVersion).Returns(VsVersionUtils.VisualStudio2015Version);

            var objectUnderTest = new AspNetCoreTemplateChooserViewModel(_closeWindowMock.Object);

            Assert.IsTrue(objectUnderTest.NetCoreMissingError);
            Assert.IsFalse(objectUnderTest.OkCommand.CanExecuteCommand);
        }
        public void TestOpenVisualStudio2015DotNetCoreToolingDownloadLink()
        {
            var objectUnderTest  = new AspNetCoreTemplateChooserViewModel(_closeWindowMock.Object);
            var startProcessMock = new Mock <Func <string, Process> >();

            AspNetCoreTemplateChooserViewModel.StartProcessOverride = startProcessMock.Object;

            objectUnderTest.OpenVisualStudio2015DotNetCoreToolingDownloadLink.Execute(null);

            startProcessMock.Verify(
                f => f(AspNetCoreTemplateChooserViewModel.DotnetCoreDownloadArchiveUrl), Times.Once);
        }
        public void TestInitialConditionsVs2015()
        {
            PackageMock.Setup(p => p.VsVersion).Returns(VsVersionUtils.VisualStudio2015Version);
            _targetSdkVersions.Add("1.0.0-preview2-003156");

            var objectUnderTest = new AspNetCoreTemplateChooserViewModel(_closeWindowMock.Object);

            CollectionAssert.AreEqual(new[] { FrameworkType.NetCore, FrameworkType.NetFramework }, objectUnderTest.AvailableFrameworks.ToList());
            Assert.AreEqual(FrameworkType.NetCore, objectUnderTest.SelectedFramework);
            CollectionAssert.AreEqual(
                new[] { AspNetVersion.AspNetCore1Preview }, objectUnderTest.AvailableVersions.ToList());
            Assert.AreEqual(AspNetVersion.AspNetCore1Preview, objectUnderTest.SelectedVersion);
        }
        public void TestInitialConditionsVs2017MissingNetCoreSdk()
        {
            PackageMock.Setup(p => p.VsVersion).Returns(VsVersionUtils.VisualStudio2017Version);

            var objectUnderTest = new AspNetCoreTemplateChooserViewModel(_closeWindowMock.Object);

            CollectionAssert.AreEqual(new[] { FrameworkType.NetFramework }, objectUnderTest.AvailableFrameworks.ToList());
            Assert.AreEqual(FrameworkType.NetFramework, objectUnderTest.SelectedFramework);
            CollectionAssert.AreEqual(
                new[] { AspNetVersion.AspNetCore10, AspNetVersion.AspNetCore11, AspNetVersion.AspNetCore20 },
                objectUnderTest.AvailableVersions.ToList());
            Assert.AreEqual(AspNetVersion.AspNetCore20, objectUnderTest.SelectedVersion);
        }
        public void TestInitialConditionsVs2017WithNetCoreSdk10()
        {
            PackageMock.Setup(p => p.VsVersion).Returns(VsVersionUtils.VisualStudio2017Version);
            _targetSdkVersions.Add(AspNetVersion.s_firstSdkVersionWith11Runtime.ToString());

            var objectUnderTest = new AspNetCoreTemplateChooserViewModel(_closeWindowMock.Object);

            CollectionAssert.AreEqual(
                new[] { FrameworkType.NetCore, FrameworkType.NetFramework },
                objectUnderTest.AvailableFrameworks.ToList());
            Assert.AreEqual(FrameworkType.NetCore, objectUnderTest.SelectedFramework);
            CollectionAssert.AreEqual(
                new[] { AspNetVersion.AspNetCore10, AspNetVersion.AspNetCore11 },
                objectUnderTest.AvailableVersions.ToList());
            Assert.AreEqual(AspNetVersion.AspNetCore11, objectUnderTest.SelectedVersion);
        }
        public void TestInitialConditionsVs2017WithNetCoreSdk20()
        {
            GoogleCloudExtensionPackageTests.InitPackageMock(
                dteMock => dteMock.Setup(dte => dte.Version).Returns(VsVersionUtils.VisualStudio2017Version));
            _targetSdkVersions.Add("2.0.0");

            var objectUnderTest = new AspNetCoreTemplateChooserViewModel(_closeWindowMock.Object);

            CollectionAssert.AreEqual(
                new[] { FrameworkType.NetCore, FrameworkType.NetFramework },
                objectUnderTest.AvailableFrameworks.ToList());
            Assert.AreEqual(FrameworkType.NetCore, objectUnderTest.SelectedFramework);
            CollectionAssert.AreEqual(
                new[] { AspNetVersion.AspNetCore20 },
                objectUnderTest.AvailableVersions.ToList());
            Assert.AreEqual(AspNetVersion.AspNetCore20, objectUnderTest.SelectedVersion);
        }
        public void TestSetSelectedFrameworkKeepSelectedVersion()
        {
            _targetSdkVersions.Add("2.0.0");
            _targetSdkVersions.Add(AspNetVersion.s_firstSdkVersionWith11Runtime.ToString());
            var objectUnderTest = new AspNetCoreTemplateChooserViewModel(_closeWindowMock.Object);

            objectUnderTest.SelectedFramework = FrameworkType.NetFramework;

            objectUnderTest.SelectedVersion   = AspNetVersion.AspNetCore11;
            objectUnderTest.SelectedFramework = FrameworkType.NetCore;

            Assert.AreEqual(FrameworkType.NetCore, objectUnderTest.SelectedFramework);
            CollectionAssert.AreEqual(
                new[]
            {
                AspNetVersion.AspNetCore10,
                AspNetVersion.AspNetCore11,
                AspNetVersion.AspNetCore20
            }, objectUnderTest.AvailableVersions.ToList());
            Assert.AreEqual(AspNetVersion.AspNetCore11, objectUnderTest.SelectedVersion);
        }