Пример #1
0
        private async static Task <int> RunOptionsAndReturnExitCode(CommandLineOptions opts)
        {
            if (opts.Action == "config")
            {
                if (string.IsNullOrEmpty(opts.PublicKey) || string.IsNullOrEmpty(opts.PrivateKey))
                {
                    Console.WriteLine("Invalid arguments. Both public and private keys must be set.");
                    return(-1);
                }
                SaveSettings(opts);
                return(0);
            }

            var configuration    = LoadConfiguration();
            var appConfiguration = new AppConfiguration(configuration);

            if (string.IsNullOrEmpty(((IMongoDbAtlasRestApiConfiguration)appConfiguration).PublicKey) ||
                string.IsNullOrEmpty(((IMongoDbAtlasRestApiConfiguration)appConfiguration).PrivateKey))
            {
                Console.WriteLine("Missing configuration. Please use the config command or set the keys manually.");
                return(-1);
            }

            using var serviceProvider = CreateServiceProvider(opts, configuration);

            var factory = new ConsoleTaskFactory(serviceProvider);

            var task = factory.Create(opts.Action, opts.Resource, out var errorMessage);

            if (task == null)
            {
                Console.WriteLine(errorMessage);
                return(-1);
            }

            try
            {
                var output = await task.ExecuteAsync(opts);

                if (string.IsNullOrEmpty(output))
                {
                    Console.WriteLine("No data returned");
                    return(-1);
                }

                Console.WriteLine(output);
                return(0);
            }
            catch (Exception exc)
            {
                Console.WriteLine($"An error occured: {exc.Message}");
                return(-2);
            }
        }
Пример #2
0
        public void ConsoleTaskFactoryCreate_ShouldSetErrorMessageOnInvalidOptions(string action, string resource, string expected)
        {
            // Arrange
            var factory = new ConsoleTaskFactory(_serviceProvider);

            // Act
            var task = factory.Create(action, resource, out var actual);

            // Assert
            task.Should().BeNull();
            actual.Should().NotBeNull();
            actual.Should().Be(expected);
        }
Пример #3
0
        public void ConsoleTaskFactoryCreate_ShouldCoverAllOptions(string action, string resource, string taskClassName)
        {
            // Arrange
            var factory = new ConsoleTaskFactory(_serviceProvider);

            // Act
            var task = factory.Create(action, resource, out var errorMessage);

            // Assert
            errorMessage.Should().BeNull();
            task.Should().NotBeNull();
            task.GetType().Name.Should().Be(taskClassName);
        }