Example #1
0
        public void GetNextWorkUnit_ScaffoldingStateModel_CorrectWorkUnitForInitialized()
        {
            // Arrange
            var spsMock          = Mock.Of <ISqlProjectService>();
            var expectedWorkUnit = new LoadSqlProjectPropertiesUnit(spsMock);
            var drMock           = new Mock <IDependencyResolver>();

            drMock.Setup(m => m.Get <LoadSqlProjectPropertiesUnit>()).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.Initialized
            };

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

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

            // Act & Assert
            // ReSharper disable once AssignNullToNotNullAttribute
            Assert.Throws <ArgumentNullException>(() => unit.Work(null, CancellationToken.None));
        }
        public async Task Work_ScriptCreationStateModel_LoadedSuccessful_Async()
        {
            // Arrange
            var project         = new SqlProject("a", "b", "c");
            var configuration   = ConfigurationModel.GetDefault();
            var previousVersion = new Version(1, 2, 3);

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

            var model   = new ScriptCreationStateModel(project, configuration, previousVersion, true, HandleWorkInProgressChanged);
            var spsMock = new Mock <ISqlProjectService>();

            spsMock.Setup(m => m.TryLoadSqlProjectPropertiesAsync(project)).ReturnsAsync(true);
            IWorkUnit <ScriptCreationStateModel> unit = new LoadSqlProjectPropertiesUnit(spsMock.Object);

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

            // Assert
            Assert.AreEqual(StateModelState.SqlProjectPropertiesLoaded, model.CurrentState);
            Assert.IsNull(model.Result);
        }