public void DeployStrategy_ShouldFail_DueToFailingExecutableCalls([ValueSource(nameof(ValidInputs))] string[] inputParams) { // Arrange var projectDirectoryName = inputParams.ElementAt(0); var projectPublishDirectory = Path.Combine(projectDirectoryName, Constants.DirectoryName.Publish); var fileSystemMock = new Mock <IFileSystem>(); fileSystemMock.Setup(x => x.CallExecutable(Constants.ExecutableName.CreateDebianInstaller, _deployDirectory, It.IsAny <string>())).Returns(false); fileSystemMock.Setup(x => x.CombinePaths(projectDirectoryName, Constants.DirectoryName.Publish)).Returns(projectPublishDirectory); fileSystemMock.Setup(x => x.CombinePaths(projectPublishDirectory, Constants.ExecutableName.AppClient)).Returns(_appClientPublishLocation); fileSystemMock.Setup(x => x.CombinePaths(projectPublishDirectory, Constants.ExecutableName.AppServer)).Returns(_appServerPublishLocation); fileSystemMock.Setup(x => x.CombinePaths(projectDirectoryName, Constants.DirectoryName.Deploy)).Returns(_deployDirectory); fileSystemMock.Setup(x => x.CombinePaths(_deployDirectory, Constants.ExecutableName.AppClient)).Returns(_appClientDeployLocation); fileSystemMock.Setup(x => x.CombinePaths(_deployDirectory, Constants.ExecutableName.AppServer)).Returns(_appServerDeployLocation); fileSystemMock.Setup(x => x.FileExists(_appClientPublishLocation)).Returns(true); fileSystemMock.Setup(x => x.FileExists(_appServerPublishLocation)).Returns(true); var buildStrategy = new DeployNameStrategy(string.Empty, fileSystemMock.Object); var loggerListenerMock = new Mock <ILoggerListener>(); loggerListenerMock.Setup(B => B.Warn(It.IsAny <string>())); AppioLogger.RegisterListener(loggerListenerMock.Object); // Act var strategyResult = buildStrategy.Execute(new[] { projectDirectoryName }); // Assert Assert.IsFalse(strategyResult.Success); Assert.AreEqual(string.Format(OutputText.OpcuaappDeployWithNameFailure, projectDirectoryName), strategyResult.OutputMessages.First().Key); loggerListenerMock.Verify(y => y.Warn(LoggingText.CreateDebianInstallerFails), Times.Once); AppioLogger.RemoveListener(loggerListenerMock.Object); }
public void ShouldExecuteStrategy_Fail_MissingParameter([ValueSource(nameof(InvalidInputs))] string[] inputParams) { // Arrange var fileSystemMock = new Mock <IFileSystem>(); var loggerListenerMock = new Mock <ILoggerListener>(); loggerListenerMock.Setup(y => y.Warn(It.IsAny <string>())); AppioLogger.RegisterListener(loggerListenerMock.Object); var deployStrategy = new DeployNameStrategy(string.Empty, fileSystemMock.Object); // Act var strategyResult = deployStrategy.Execute(inputParams); // Assert Assert.IsFalse(strategyResult.Success); Assert.AreEqual(OutputText.OpcuaappDeployFailure, strategyResult.OutputMessages.First().Key); Assert.AreEqual(string.Empty, strategyResult.OutputMessages.First().Value); loggerListenerMock.Verify(y => y.Warn(It.IsAny <string>()), Times.Once); AppioLogger.RemoveListener(loggerListenerMock.Object); }
public void DeployStrategy_Should_SucceedOnDeployProject([ValueSource(nameof(ValidInputs))] string[] inputParams, [ValueSource(nameof(FilesExistanceFlags))] bool[] existanceFlags) { // Arrange var projectDirectoryName = inputParams.ElementAt(0); var projectPublishDirectory = Path.Combine(projectDirectoryName, Constants.DirectoryName.Publish); var publishedClientExistanceFlag = existanceFlags.ElementAtOrDefault(0); var publishedServerExistanceFlag = existanceFlags.ElementAtOrDefault(1); var fileSystemMock = new Mock <IFileSystem>(); fileSystemMock.Setup(x => x.CombinePaths(projectDirectoryName, Constants.DirectoryName.Publish)).Returns(projectPublishDirectory); fileSystemMock.Setup(x => x.CombinePaths(projectPublishDirectory, Constants.ExecutableName.AppClient)).Returns(_appClientPublishLocation); fileSystemMock.Setup(x => x.CombinePaths(projectPublishDirectory, Constants.ExecutableName.AppServer)).Returns(_appServerPublishLocation); fileSystemMock.Setup(x => x.CombinePaths(projectDirectoryName, Constants.DirectoryName.Deploy)).Returns(_deployDirectory); fileSystemMock.Setup(x => x.CombinePaths(_deployDirectory, Constants.ExecutableName.AppClient)).Returns(_appClientDeployLocation); fileSystemMock.Setup(x => x.CombinePaths(_deployDirectory, Constants.ExecutableName.AppServer)).Returns(_appServerDeployLocation); fileSystemMock.Setup(x => x.CombinePaths(projectDirectoryName, Constants.DirectoryName.Deploy)).Returns(_deployDirectory); fileSystemMock.Setup(x => x.CombinePaths(_deployDirectory, Constants.DirectoryName.Temp)).Returns(_deployTempDirectory); fileSystemMock.Setup(x => x.CombinePaths(_deployTempDirectory, Constants.DirectoryName.OpcuaappInstaller, Constants.DirectoryName.Usr, Constants.DirectoryName.Bin, Constants.ExecutableName.AppClient)).Returns(_appClientDeployTempLocation); fileSystemMock.Setup(x => x.CombinePaths(_deployTempDirectory, Constants.DirectoryName.OpcuaappInstaller, Constants.DirectoryName.Usr, Constants.DirectoryName.Bin, Constants.ExecutableName.AppServer)).Returns(_appServerDeployTempLocation); // conitue work here fileSystemMock.Setup(x => x.CallExecutable(Constants.ExecutableName.CreateDebianInstaller, It.IsAny <string>(), Constants.ExecutableName.CreateDebianInstallerArguments)).Returns(true); fileSystemMock.Setup(x => x.FileExists(_appClientPublishLocation)).Returns(publishedClientExistanceFlag); fileSystemMock.Setup(x => x.FileExists(_appServerPublishLocation)).Returns(publishedServerExistanceFlag); var deployStrategy = new DeployNameStrategy(string.Empty, fileSystemMock.Object); var loggerListenerMock = new Mock <ILoggerListener>(); loggerListenerMock.Setup(y => y.Info(It.IsAny <string>())); AppioLogger.RegisterListener(loggerListenerMock.Object); // Act var strategyResult = deployStrategy.Execute(inputParams); // Assert Assert.IsTrue(strategyResult.Success); Assert.AreEqual(string.Format(OutputText.OpcuaappDeploySuccess, projectDirectoryName), strategyResult.OutputMessages.First().Key); Assert.AreEqual(string.Empty, strategyResult.OutputMessages.First().Value); fileSystemMock.Verify(x => x.CreateDirectory(_deployDirectory), Times.Once); if (publishedClientExistanceFlag) { fileSystemMock.Verify(x => x.CopyFile(_appClientPublishLocation, _appClientDeployTempLocation), Times.Once); } else { fileSystemMock.Verify(x => x.CopyFile(_appClientPublishLocation, _appClientDeployTempLocation), Times.Never); } if (publishedServerExistanceFlag) { fileSystemMock.Verify(x => x.CopyFile(_appServerPublishLocation, _appServerDeployTempLocation), Times.Once); } else { fileSystemMock.Verify(x => x.CopyFile(_appServerPublishLocation, _appServerDeployTempLocation), Times.Never); } loggerListenerMock.Verify(x => x.Info(LoggingText.OpcuaappDeploySuccess), Times.Once); loggerListenerMock.Verify(y => y.Info(It.IsAny <string>()), Times.Once); AppioLogger.RemoveListener(loggerListenerMock.Object); }