public void ShouldWriteNewSettingsToTheConfigProviderAndReturnNothing()
        {
            // Arrange
            var mockConfigStore       = new Mock <IScaffoldingConfigStore>();
            var mockScaffolderLocator = new Mock <IScaffolderLocator>();

            mockScaffolderLocator.Setup(x => x.GetScaffolders(_solutionManager.DefaultProject, "someScaffolder", false)).Returns(new[] {
                new ScaffolderInfo("foundScaffolderName", null, null, null, null)
            });

            // Act
            var results = new SetDefaultScaffolderCmdlet(_solutionManager, null, mockConfigStore.Object, mockScaffolderLocator.Object)
            {
                Name       = "someDefault",
                Scaffolder = "someScaffolder"
            }.GetResults <DefaultScaffolderConfigEntry>();

            // Assert
            Assert.AreEqual(0, results.Count());
            mockConfigStore.Verify(x => x.SetProjectDefaultScaffolder(_solutionManager.DefaultProject, "someDefault", "foundScaffolderName", false));
        }
        public void ShouldBeAbleToWriteSolutionWideSettings()
        {
            // Arrange
            var mockConfigStore       = new Mock <IScaffoldingConfigStore>();
            var mockScaffolderLocator = new Mock <IScaffolderLocator>();

            mockScaffolderLocator.Setup(x => x.GetScaffolders(null, "someScaffolder", false)).Returns(new[] {
                new ScaffolderInfo("foundScaffolderName", null, null, null, null)
            });

            // Act
            var results = new SetDefaultScaffolderCmdlet(_solutionManager, null, mockConfigStore.Object, mockScaffolderLocator.Object)
            {
                Name         = "someDefault",
                Scaffolder   = "someScaffolder",
                SolutionWide = SwitchParameter.Present,
                DoNotOverwriteExistingSetting = SwitchParameter.Present
            }.GetResults <DefaultScaffolderConfigEntry>();

            // Assert
            Assert.AreEqual(0, results.Count());
            mockConfigStore.Verify(x => x.SetSolutionDefaultScaffolder("someDefault", "foundScaffolderName", true));
        }
        public void ShouldBeAbleToWriteConfigToArbitraryProject()
        {
            // Arrange
            var mockConfigStore       = new Mock <IScaffoldingConfigStore>();
            var mockScaffolderLocator = new Mock <IScaffolderLocator>();
            var vbProject             = _solutionManager.GetProject("myVbProject");

            mockScaffolderLocator.Setup(x => x.GetScaffolders(vbProject, "someScaffolder", false)).Returns(new[] {
                new ScaffolderInfo("foundScaffolderName", null, null, null, null)
            });

            // Act
            var results = new SetDefaultScaffolderCmdlet(_solutionManager, null, mockConfigStore.Object, mockScaffolderLocator.Object)
            {
                Name       = "someDefault",
                Scaffolder = "someScaffolder",
                Project    = vbProject.Name
            }.GetResults <DefaultScaffolderConfigEntry>();

            // Assert
            Assert.AreEqual(0, results.Count());
            mockConfigStore.Verify(x => x.SetProjectDefaultScaffolder(vbProject, "someDefault", "foundScaffolderName", false));
        }