示例#1
0
        public async Task Handle_ConfigurationFileOverrideNotPresent_ReturnsOriginalConfiguration()
        {
            //Arrange
            var fakePullDogPullRequest = new PullDogPullRequest()
            {
                ConfigurationOverride = null
            };

            var fakeConfiguration = new ConfigurationFile(new List <string>());

            var fakePullDogFileCollectorFactory = Substitute.For <IPullDogFileCollectorFactory>();

            var fakePullDogFileCollector = await fakePullDogFileCollectorFactory.CreateAsync(fakePullDogPullRequest);

            fakePullDogFileCollector
            .GetConfigurationFileAsync()
            .Returns(fakeConfiguration);

            var handler = new GetConfigurationForPullRequestQueryHandler(
                fakePullDogFileCollectorFactory);

            //Act
            var configuration = await handler.Handle(
                new GetConfigurationForPullRequestQuery(
                    fakePullDogPullRequest),
                default);

            //Assert
            Assert.AreSame(fakeConfiguration, configuration);
        }
示例#2
0
        public async Task Handle_ConfigurationOverridePresentWithBuildArguments_OverridesExistingBuildArguments()
        {
            //Arrange
            var fakePullDogPullRequest = new PullDogPullRequest()
            {
                ConfigurationOverride = new ConfigurationFileOverride()
                {
                    BuildArguments = new Dictionary <string, string>()
                    {
                        { "some-new-key", "some-new-value" }
                    }
                }
            };

            var fakeConfiguration = new ConfigurationFile(new List <string>())
            {
                BuildArguments = new Dictionary <string, string>()
                {
                    { "some-old-key", "some-old-value" }
                }
            };

            var fakePullDogFileCollectorFactory = Substitute.For <IPullDogFileCollectorFactory>();

            var fakePullDogFileCollector = await fakePullDogFileCollectorFactory.CreateAsync(fakePullDogPullRequest);

            fakePullDogFileCollector
            .GetConfigurationFileAsync()
            .Returns(fakeConfiguration);

            var handler = new GetConfigurationForPullRequestQueryHandler(
                fakePullDogFileCollectorFactory);

            //Act
            var configuration = await handler.Handle(
                new GetConfigurationForPullRequestQuery(
                    fakePullDogPullRequest),
                default);

            //Assert
            var buildArgument = configuration.BuildArguments !.Single();

            Assert.AreEqual("some-new-key", buildArgument.Key);
            Assert.AreEqual("some-new-value", buildArgument.Value);
        }
示例#3
0
        public async Task Handle_ConfigurationFileNotPresent_ReturnsDefaultConfiguration()
        {
            //Arrange
            var fakePullDogFileCollectorFactory = Substitute.For <IPullDogFileCollectorFactory>();

            var handler = new GetConfigurationForPullRequestQueryHandler(
                fakePullDogFileCollectorFactory);

            //Act
            var configuration = await handler.Handle(
                new GetConfigurationForPullRequestQuery(
                    new PullDogPullRequest()),
                default);

            //Assert
            Assert.IsNotNull(configuration?.DockerComposeYmlFilePaths);
            Assert.AreEqual("docker-compose.yml", configuration.DockerComposeYmlFilePaths[0]);
        }
示例#4
0
        public async Task Handle_ConfigurationOverridePresentWithExpiry_OverridesExistingExpiry()
        {
            //Arrange
            var fakePullDogPullRequest = new PullDogPullRequest()
            {
                ConfigurationOverride = new ConfigurationFileOverride()
                {
                    Expiry = TimeSpan.FromMinutes(2)
                }
            };

            var fakeConfiguration = new ConfigurationFile(new List <string>())
            {
                Expiry = TimeSpan.FromMinutes(1)
            };

            var fakePullDogFileCollectorFactory = Substitute.For <IPullDogFileCollectorFactory>();

            var fakePullDogFileCollector = await fakePullDogFileCollectorFactory.CreateAsync(fakePullDogPullRequest);

            fakePullDogFileCollector
            .GetConfigurationFileAsync()
            .Returns(fakeConfiguration);

            var handler = new GetConfigurationForPullRequestQueryHandler(
                fakePullDogFileCollectorFactory);

            //Act
            var configuration = await handler.Handle(
                new GetConfigurationForPullRequestQuery(
                    fakePullDogPullRequest),
                default);

            //Assert
            Assert.AreEqual(TimeSpan.FromMinutes(2), configuration.Expiry);
        }
示例#5
0
        public async Task Handle_ConfigurationOverridePresentWithConversationMode_OverridesExistingConversationMode()
        {
            //Arrange
            var fakePullDogPullRequest = new PullDogPullRequest()
            {
                ConfigurationOverride = new ConfigurationFileOverride()
                {
                    ConversationMode = ConversationMode.MultipleComments
                }
            };

            var fakeConfiguration = new ConfigurationFile(new List <string>())
            {
                ConversationMode = ConversationMode.SingleComment
            };

            var fakePullDogFileCollectorFactory = Substitute.For <IPullDogFileCollectorFactory>();

            var fakePullDogFileCollector = await fakePullDogFileCollectorFactory.CreateAsync(fakePullDogPullRequest);

            fakePullDogFileCollector
            .GetConfigurationFileAsync()
            .Returns(fakeConfiguration);

            var handler = new GetConfigurationForPullRequestQueryHandler(
                fakePullDogFileCollectorFactory);

            //Act
            var configuration = await handler.Handle(
                new GetConfigurationForPullRequestQuery(
                    fakePullDogPullRequest),
                default);

            //Assert
            Assert.AreEqual(ConversationMode.MultipleComments, configuration.ConversationMode);
        }