public void ElectronNetStart_Should_Execute_Command_By_Given_ElectronNetStartSettings() { ICakeContext cakeContext = _cakeContextMock.Object; var electronNetInitSettings = new ElectronNetStartSettings() { WorkingDirectory = "./SomeDirectory", AspCoreProjectPath = "./OtherPath", Manifest = "test", Arguments = new[] { "test=true", "dog=woof" } }; string expectedCommand = $"{CmdBase} /project-path {electronNetInitSettings.AspCoreProjectPath} /manifest {electronNetInitSettings.Manifest} /args --{electronNetInitSettings.Arguments[0]} --{electronNetInitSettings.Arguments[1]}"; var processHelperMock = new Mock <IProcessHelper>(MockBehavior.Strict); var commandBuilderMock = new Mock <ICommandBuilder>(MockBehavior.Strict); ElectronCakeContext.Current = new TestCakeContext(processHelperMock, commandBuilderMock); commandBuilderMock .Setup(builder => builder.SwitchHelper( It.Is <string[]>(strings => strings.Contains(electronNetInitSettings.Arguments[0]) && strings.Contains(electronNetInitSettings.Arguments[1])))) .Returns(() => $"--{electronNetInitSettings.Arguments[0]} --{electronNetInitSettings.Arguments[1]}"); processHelperMock.Setup(helper => helper.CmdExecute(It.Is <string>(s => s == expectedCommand), It.Is <string>(s => s == electronNetInitSettings.WorkingDirectory), It.IsAny <bool>(), It.IsAny <bool>())) .Returns(1); cakeContext.ElectronNetStart(electronNetInitSettings); processHelperMock.Verify(helper => helper.CmdExecute(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>()), Times.Once); }
public static int ElectronNetStart(this ICakeContext context, ElectronNetStartSettings settings) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } return(ElectronNetStart(context, settings.WorkingDirectory, settings.AspCoreProjectPath, settings.Manifest, settings.Arguments)); }