Example #1
0
        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));
        }