示例#1
0
        public async Task ExecuteAsync_UploadsCorrectlyModifiedBuild()
        {
            // Arrange
            var build         = TestUtilities.CreateValidBuild();
            var expectedBuild = TestUtilities.CreateValidBuild();

            expectedBuild["variables"]["Variable"] = TestUtilities.CreateValidVariableJObject();
            var variables = new Dictionary <string, Variable>
            {
                { "Variable", TestUtilities.CreateValidVariable() }
            };
            var azureClient = CreateValidAzureClient();

            azureClient.GetAsync(Arg.Any <string>()).Returns(JsonConvert.SerializeObject(build));
            var output  = CreateValidOutput();
            var options = CreateValidSetOptions(AvmObjectType.BuildVariables);

            File.WriteAllText(options.SourceFilePath, JsonConvert.SerializeObject(variables));
            var setCommand = new SetCommand(options, new ReleaseTransformer(),
                                            new VariableContainerTransformer(), CreateValidUrlStore(), azureClient, output);

            // Act
            await setCommand.ExecuteAsync();

            File.Delete(options.SourceFilePath);

            // Assert
            await azureClient.Received().PutAsync(Arg.Any <string>(), Arg.Is <string>(res => JToken.DeepEquals(JsonConvert.DeserializeObject <JToken>(res), expectedBuild)));
        }
示例#2
0
        public async Task ExecuteAsync_UploadsCorrectlyModifiedRelease()
        {
            // Arrange
            var release = TestUtilities.CreateValidRelease();
            var env     = TestUtilities.CreateValidReleaseEnvironment();

            ((JArray)release["environments"]).Add(env);

            var expectedRelease = TestUtilities.CreateValidRelease();

            expectedRelease["variables"]["Variable"] = TestUtilities.CreateValidVariableJObject();
            env = TestUtilities.CreateValidReleaseEnvironment();
            ((JArray)expectedRelease["environments"]).Add(env);
            env["variables"]["Variable"] = TestUtilities.CreateValidVariableJObject();

            var variablesFileContent = new ReleaseVariables
            {
                Environments = new List <PipelineEnvironment>
                {
                    new PipelineEnvironment
                    {
                        Id        = 1,
                        Name      = "Release 1",
                        Variables = new Dictionary <string, Variable>
                        {
                            { "Variable", TestUtilities.CreateValidVariable() }
                        }
                    }
                },
                Variables = new Dictionary <string, Variable>
                {
                    { "Variable", TestUtilities.CreateValidVariable() }
                }
            };

            var options = CreateValidSetOptions(AvmObjectType.ReleaseVariables);

            File.WriteAllText(options.SourceFilePath, JsonConvert.SerializeObject(variablesFileContent));
            var azureClient = CreateValidAzureClient();

            azureClient.GetAsync(Arg.Any <string>()).Returns(JsonConvert.SerializeObject(release));
            var output     = CreateValidOutput();
            var urlStore   = CreateValidUrlStore();
            var setCommand = new SetCommand(options, new ReleaseTransformer(), new VariableContainerTransformer(), urlStore, azureClient, output);

            // Act
            await setCommand.ExecuteAsync();

            File.Delete(options.SourceFilePath);

            // Assert
            await azureClient.Received().PutAsync(Arg.Any <string>(),
                                                  Arg.Is <string>(res => JToken.DeepEquals(JsonConvert.DeserializeObject <JToken>(res), expectedRelease)));
        }
示例#3
0
        public async Task ChangeVersionTest()
        {
            using (var fs = new DisposableFileSystem())
            {
                fs.CreateFile("MySolution.sln");
                fs.CreateFolder("src/Services");
                fs.CreateFile("src/Services/project1.csproj", ProjectHelper.SetVersion("1.5.1"));
                var store   = new ProjectStore();
                var command = new SetCommand(GitHelper.CreateDefaultGitMock().Object);
                var context = new CommandContext(_console, Verbosity.Info);
                context.Directory = fs.RootPath;

                await command.ExecuteAsync(context, "3.0.1");

                var project = store.Read(PathHelper.GetFile(fs, "src/Services/project1.csproj"));

                Assert.Equal("3.0.1", project.Version);
            }
        }
示例#4
0
        public async Task ExecuteAsync_UploadsRelease()
        {
            // Arrange
            var options = CreateValidSetOptions(AvmObjectType.Release);
            var release = TestUtilities.CreateValidRelease();

            File.WriteAllText(options.SourceFilePath, JsonConvert.SerializeObject(release));

            var azureClient = CreateValidAzureClient();
            var output      = CreateValidOutput();

            var setCommand = new SetCommand(options, new ReleaseTransformer(),
                                            new VariableContainerTransformer(), CreateValidUrlStore(), azureClient, output);

            // Act
            await setCommand.ExecuteAsync();

            File.Delete(options.SourceFilePath);

            // Assert
            await azureClient.PutAsync(Arg.Any <string>(),
                                       Arg.Is <string>(res => JToken.DeepEquals(JsonConvert.DeserializeObject <JToken>(res), release)));
        }
示例#5
0
        public async Task ChangeNullVersionTest()
        {
            using (var fs = new DisposableFileSystem())
            {
                fs.CreateFile("MySolution.sln")
                .CreateFolder("src/Services/project1")
                .CreateFile("src/Services/project1/project1.csproj", ProjectHelper.SetVersion("1.5.1"))
                .CreateFolder("src/Services/project2")
                .CreateFile("src/Services/project2/project2.csproj", ProjectHelper.SetVersion("2.1.0"));
                var store   = new ProjectStore();
                var command = new SetCommand(GitHelper.CreateDefaultGitMock().Object);
                var context = new CommandContext(_console, Verbosity.Info);
                context.Directory = fs.RootPath;

                var exception = await Assert.ThrowsAsync <ArgumentNullException>(() => command.ExecuteAsync(context, null));

                Assert.Equal("version", exception.ParamName);
            }
        }