public async Task Work_ScaffoldingStateModel_FormattedSuccessful_Async(bool latest)
        {
            // Arrange
            var dacVersion = new Version(1, 2, 3);
            var project    = new SqlProject("a", "b", "c");

            project.ProjectProperties.DacVersion = dacVersion;
            var configuration   = ConfigurationModel.GetDefault();
            var previousVersion = new Version(1, 0);
            var expectedFormattedTargetVersion = new Version(1, 2, 3, 0);

            Task HandleWorkInProgressChanged(bool arg) => Task.CompletedTask;

            var model  = new ScriptCreationStateModel(project, configuration, previousVersion, latest, HandleWorkInProgressChanged);
            var vsMock = new Mock <IVersionService>();

            vsMock.Setup(m => m.FormatVersion(dacVersion, configuration)).Returns(expectedFormattedTargetVersion.ToString());
            IWorkUnit <ScriptCreationStateModel> unit = new FormatTargetVersionUnit(vsMock.Object);

            // Act
            await unit.Work(model, CancellationToken.None);

            // Assert
            Assert.AreEqual(StateModelState.FormattedTargetVersionLoaded, model.CurrentState);
            Assert.IsNull(model.Result);
            if (latest)
            {
                Assert.IsNull(model.FormattedTargetVersion);
            }
            else
            {
                Assert.AreEqual(expectedFormattedTargetVersion, model.FormattedTargetVersion);
            }
        }
Exemple #2
0
        public void GetNextWorkUnit_ScaffoldingStateModel_CorrectWorkUnitForProjectPropertiesLoaded()
        {
            // Arrange
            var vsMock           = Mock.Of <IVersionService>();
            var expectedWorkUnit = new FormatTargetVersionUnit(vsMock);
            var drMock           = new Mock <IDependencyResolver>();

            drMock.Setup(m => m.Get <FormatTargetVersionUnit>()).Returns(expectedWorkUnit);
            IWorkUnitFactory wuf = new WorkUnitFactory(drMock.Object);
            var project          = new SqlProject("a", "b", "c");
            var configuration    = ConfigurationModel.GetDefault();
            var targetVersion    = new Version(1, 0);

            Task HandlerFunc(bool b) => Task.CompletedTask;

            var model = new ScaffoldingStateModel(project, configuration, targetVersion, HandlerFunc)
            {
                CurrentState = StateModelState.SqlProjectPropertiesLoaded
            };

            // Act
            var workUnit = wuf.GetNextWorkUnit(model);

            // Assert
            Assert.AreSame(expectedWorkUnit, workUnit);
            drMock.Verify(m => m.Get <FormatTargetVersionUnit>(), Times.Once);
        }
        public void Work_ScriptCreationStateModel_ArgumentNullException_StateModel()
        {
            // Arrange
            var vsMock = new Mock <IVersionService>();
            IWorkUnit <ScriptCreationStateModel> unit = new FormatTargetVersionUnit(vsMock.Object);

            // Act & Assert
            // ReSharper disable once AssignNullToNotNullAttribute
            Assert.Throws <ArgumentNullException>(() => unit.Work(null, CancellationToken.None));
        }