Exemple #1
0
        public void Dispose_Positive_WithProgressBar()
        {
            const int index = 1;
            const int expectedTotalTicks = 5;
            var       gitHubServiceMock  = Mock.Create <IGitHubService>();

            var progressBarMock = Mock.Create <IProgressBar>();

            Mock.Arrange(() => progressBarMock.Report((double)index / expectedTotalTicks)).DoNothing().OccursOnce();
            Mock.Arrange(() => progressBarMock.Dispose()).DoNothing().Occurs(2);

            var createProgressBarTotalCalls = 0;

            IProgressBar CreateProgressBar(int actualTotalTicks)
            {
                createProgressBarTotalCalls++;
                Assert.Equal(expectedTotalTicks, actualTotalTicks);
                return(progressBarMock);
            }

            var service = new CliService(
                null, gitHubServiceMock, null, CreateProgressBar, null);

            Mock.Raise(() => gitHubServiceMock.RepositoryCheckedStarted  += null, expectedTotalTicks);
            Mock.Raise(() => gitHubServiceMock.RepositoryChecked         += null, new RepositoryCheckedArgs(index, expectedTotalTicks));
            Mock.Raise(() => gitHubServiceMock.RepositoryCheckedFinished += null);
            service.Dispose();
            Mock.Raise(() => gitHubServiceMock.RepositoryCheckedStarted  += null, expectedTotalTicks);
            Mock.Raise(() => gitHubServiceMock.RepositoryChecked         += null, new RepositoryCheckedArgs(index, expectedTotalTicks));
            Mock.Raise(() => gitHubServiceMock.RepositoryCheckedFinished += null);

            Assert.Equal(1, createProgressBarTotalCalls);
            Mock.Assert(progressBarMock);
        }
Exemple #2
0
        public void GetServiceNameTest()
        {
            var cliService  = new CliService();
            var serviceName = cliService.GetServiceName();

            Assert.AreEqual(serviceName, "GetServiceNameTest");
        }
 public AngularServiceProxyGenerator(
     CliHttpClientFactory cliHttpClientFactory,
     IJsonSerializer jsonSerializer,
     ICmdHelper cmdhelper,
     CliService cliService) :
     base(cliHttpClientFactory, jsonSerializer)
 {
     _cmdhelper  = cmdhelper;
     _cliService = cliService;
 }
Exemple #4
0
        /// <summary>
        /// Returns the <see cref="CliService"/> for the specified <see cref="Type"/>, creating it
        /// if it does not already exist.
        /// </summary>
        /// <param name="serviceType">The service type.</param>
        /// <returns>
        /// A new or existing <see cref="CliService"/> instance.
        /// </returns>
        private CliService GetService(Type serviceType)
        {
            var service = services.FirstOrDefault(x => x.Type == serviceType);

            if (service == null)
            {
                services.Add(service = new CliService(this, serviceType));
            }

            return(service);
        }
Exemple #5
0
        private async Task CheckNgSchematicsAsync()
        {
            var packageJsonPath = $"package.json";

            if (!File.Exists(packageJsonPath))
            {
                throw new CliUsageException(
                          "package.json file not found" +
                          Environment.NewLine +
                          GetUsageInfo()
                          );
            }

            var schematicsVersion =
                (string)JObject.Parse(File.ReadAllText(packageJsonPath))["devDependencies"]?["@abp/ng.schematics"];

            if (schematicsVersion == null)
            {
                throw new CliUsageException(
                          "\"@abp/ng.schematics\" NPM package should be installed to the devDependencies before running this command!" +
                          Environment.NewLine +
                          GetUsageInfo()
                          );
            }

            var parseError = SemanticVersion.TryParse(schematicsVersion.TrimStart('~', '^', 'v'), out var semanticSchematicsVersion);

            if (parseError)
            {
                Logger.LogWarning("Couldn't determinate version of \"@abp/ng.schematics\" package.");
                return;
            }

            var cliVersion = await CliService.GetCurrentCliVersionAsync(typeof(CliService).Assembly);

            if (semanticSchematicsVersion < cliVersion)
            {
                Logger.LogWarning("\"@abp/ng.schematics\" version is lower than ABP Cli version.");
                return;
            }
        }
Exemple #6
0
        public void Run_GetWorkflows_Error(
            Exception expectedException, LogLevel expectedLogLevel, ConsoleColor expectedColor)
        {
            const string repository          = "test-repository";
            var          workflowServiceMock = Mock.Create <IWorkflowService>();

            Mock.Arrange(() => workflowServiceMock.GetWorkflows(repository)).Throws(expectedException);
            var gitHubServiceMock = Mock.Create <IGitHubService>();

            Mock.Arrange(() => gitHubServiceMock.GetOutdated(Arg.IsAny <IEnumerable <WorkflowInfo> >()));
            var actionPrinterMock = Mock.Create <IActionPrinter>();

            Mock.Arrange(() => actionPrinterMock.PrintHeader(Arg.AnyString, Arg.AnyString))
            .OccursNever();
            Mock.Arrange(() => actionPrinterMock.Print(Arg.IsAny <IEnumerable <GitHubAction> >())).OccursNever();
            Mock.Arrange(() => actionPrinterMock.PrintNoUpgradeNeeded()).OccursNever();
            Mock.Arrange(() => actionPrinterMock.PrintRunUpgrade()).OccursNever();
            var streamerMock = Mock.Create <IStreamer>();

            Mock.Arrange(() => streamerMock.Push <CliService>(Arg.Matches <StreamOptions>(options =>
                                                                                          ReferenceEquals(expectedException, options.Exception) &&
                                                                                          options.Level == expectedLogLevel &&
                                                                                          options.Messages.Count() == 1 &&
                                                                                          options.Messages.Single().Color == expectedColor &&
                                                                                          options.Messages.Single().Message == expectedException.Message)))
            .DoNothing()
            .OccursOnce();
            Mock.Arrange(() => streamerMock.PushEmpty()).OccursNever();
            var service = new CliService(
                workflowServiceMock, gitHubServiceMock, actionPrinterMock, null, streamerMock);

            service.Run(repository, false /* any boolean */);

            Mock.Assert(workflowServiceMock);
            Mock.Assert(gitHubServiceMock);
            Mock.Assert(actionPrinterMock);
            Mock.Assert(streamerMock);
        }
Exemple #7
0
        public void Dispose_Positive_WithoutProgressBar(
            Func <int, int[], Func <int, IProgressBar> > factoryOfProgressBarFactory, int expectedNumCalls)
        {
            const int index = 1;
            const int expectedTotalTicks = 5;
            var       gitHubServiceMock  = Mock.Create <IGitHubService>();
            var       actualNumCalls     = new[] { 0 };
            var       service            = new CliService(
                null,
                gitHubServiceMock,
                null,
                factoryOfProgressBarFactory(expectedTotalTicks, actualNumCalls),
                null);

            Mock.Raise(() => gitHubServiceMock.RepositoryCheckedStarted  += null, expectedTotalTicks);
            Mock.Raise(() => gitHubServiceMock.RepositoryChecked         += null, new RepositoryCheckedArgs(index, expectedTotalTicks));
            Mock.Raise(() => gitHubServiceMock.RepositoryCheckedFinished += null);
            service.Dispose();
            Mock.Raise(() => gitHubServiceMock.RepositoryCheckedStarted  += null, expectedTotalTicks);
            Mock.Raise(() => gitHubServiceMock.RepositoryChecked         += null, new RepositoryCheckedArgs(index, expectedTotalTicks));
            Mock.Raise(() => gitHubServiceMock.RepositoryCheckedFinished += null);

            Assert.Equal(expectedNumCalls, actualNumCalls[0]);
        }
Exemple #8
0
        public void Run_ShouldUpgrade(bool shouldUpgrade, bool isOutdatedEmpty)
        {
            const string repository = "test-repository";

            IEnumerable <WorkflowInfo> infos = new List <WorkflowInfo>();
            var workflowServiceMock          = Mock.Create <IWorkflowService>();

            Mock.Arrange(() => workflowServiceMock.GetWorkflows(repository)).Returns(infos);

            IDictionary <WorkflowInfo, IEnumerable <GitHubAction> > outdated;
            var actionPrinterMock = Mock.Create <IActionPrinter>();

            if (isOutdatedEmpty)
            {
                outdated = new Dictionary <WorkflowInfo, IEnumerable <GitHubAction> >();
                Mock.Arrange(() => actionPrinterMock.PrintHeader(Arg.AnyString, Arg.AnyString))
                .OccursNever();
                Mock.Arrange(() => actionPrinterMock.Print(Arg.IsAny <IEnumerable <GitHubAction> >()))
                .OccursNever();
                Mock.Arrange(() => actionPrinterMock.PrintNoUpgradeNeeded()).DoNothing().OccursOnce();
            }
            else
            {
                const string fileName       = ".github/test-file";
                var          actionWorkflow = new ActionWorkflow {
                    Name = "test-action-workflow-name"
                };
                var actions = new List <GitHubAction>();
                outdated = new Dictionary <WorkflowInfo, IEnumerable <GitHubAction> >
                {
                    { new WorkflowInfo($"some-folder/{fileName}", actionWorkflow), actions }
                };
                Mock.Arrange(() => actionPrinterMock.PrintHeader(actionWorkflow.Name, fileName))
                .DoNothing().OccursOnce();
                Mock.Arrange(() => actionPrinterMock.Print(actions))
                .DoNothing().OccursOnce();
                Mock.Arrange(() => actionPrinterMock.PrintNoUpgradeNeeded()).OccursNever();
            }

            var gitHubServiceMock = Mock.Create <IGitHubService>();

            Mock.Arrange(() => gitHubServiceMock.GetOutdated(infos)).Returns(outdated);

            var progressBarMock = Mock.Create <Ghacu.Runner.Cli.Progress.IProgressBar>();

            Mock.Arrange(() => progressBarMock.Report(0.25)).DoNothing().OccursOnce();
            Mock.Arrange(() => progressBarMock.Dispose()).DoNothing().OccursOnce();

            var streamerMock = Mock.Create <IStreamer>();

            Mock.Arrange(() => streamerMock.Push <CliService>(Arg.IsAny <StreamOptions>())).OccursNever();

            IAssertable pushEmptySetup  = Mock.Arrange(() => streamerMock.PushEmpty()).DoNothing();
            IAssertable runUpgradeSetup = Mock.Arrange(() => actionPrinterMock.PrintRunUpgrade()).DoNothing();

            if (isOutdatedEmpty)
            {
                pushEmptySetup.OccursNever();
                runUpgradeSetup.OccursNever();
            }
            else if (!shouldUpgrade)
            {
                pushEmptySetup.OccursOnce();
                runUpgradeSetup.OccursOnce();
            }

            var service = new CliService(
                workflowServiceMock, gitHubServiceMock, actionPrinterMock, null, streamerMock);

            service.Run(repository, shouldUpgrade);

            Mock.Assert(workflowServiceMock);
            Mock.Assert(gitHubServiceMock);
            Mock.Assert(actionPrinterMock);
            Mock.Assert(streamerMock);
        }
 public GenerateProxyCommand(CliService cliService)
     : base(cliService)
 {
 }
Exemple #10
0
 public RemoveProxyCommand(CliService cliService)
     : base(cliService)
 {
 }
Exemple #11
0
 public ProxyCommandBase(CliService cliService)
 {
     CliService = cliService;
     Logger     = NullLogger <HelpCommand> .Instance;
 }
Exemple #12
0
 public CliController(CliService cliService,
                      SingleSequencePolicy singleSequencePolicy)
 {
     _cliService           = cliService;
     _singleSequencePolicy = singleSequencePolicy;
 }