public void Generate_WhenNullInstance_ThrowsException() { // Arrange var systemUnderTest = new ReleaseDefinitionReport(); // Act var actualException = Record.Exception(() => systemUnderTest.Generate(null)); // Assert actualException.Should().NotBeNull(); actualException.Should().BeOfType<ArgumentNullException>(); }
public void DataOptions_WhenCalled_ShouldRequestBuildAndArtifacts() { // Arrange var expected = DataOptions.ReleaseDefinitions; var systemUnderTest = new ReleaseDefinitionReport(); // Act var actual = systemUnderTest.DataOptions; // Assert actual.Should().Be(expected); }
public async Task Title_WhenCalled_ShouldReturnUniqueString() { // Arrange var systemUnderTest = new ReleaseDefinitionReport(); // Act var actual = systemUnderTest.Title; await Task.Delay(2000).ConfigureAwait(false); // Wait 2 seconds var secondTitle = systemUnderTest.Title; // Assert actual.Should().NotBeNullOrEmpty(); actual.Should().NotBe(secondTitle); }
public void Generate_WithInstance_GeneratesReport() { // Arrange var expected = $"SEP=;{Environment.NewLine}Collection;Project;Name;Environment;Filter;CD trigger;Prev. Environment;PreApproval;PreApprover(s);PostApproval;PostApprover(s);Test* tasks;Link;{Environment.NewLine}testValue;testValue;testValue;testValue;;False;;False;;False;;;https://www.example.com/;{Environment.NewLine}testValue;testValue;testValue;testValue;{{\"\"sourceBranch\"\":\"\"master\"\"}};True;;True;testIdentity;True;testIdentity;testValue;https://www.example.com/;{Environment.NewLine}testValue;testValue;testValue;testValue;{{\"\"sourceBranch\"\":\"\"master\"\"}};True;testValue;True;testIdentity;True;testIdentity;testValue;https://www.example.com/;{Environment.NewLine}"; var testString = "testValue"; var testIdentity = new AzureDevOpsIdentity { DisplayName = "testIdentity" }; var testUri = new Uri("https://www.example.com/"); var testProject = new AzureDevOpsProject { Name = testString, ReleaseDefinitions = new HashSet<AzureDevOpsReleaseDefinition> { new AzureDevOpsReleaseDefinition { Name = testString, Environments = new HashSet<AzureDevOpsReleaseDefinitionEnvironment> { new AzureDevOpsReleaseDefinitionEnvironment { Name = testString, Conditions = new HashSet<AzureDevOpsCondition>(), PreDeployApprovals = new AzureDevOpsReleaseDefinitionApproval { Approvals = new HashSet<AzureDevOpsReleaseDefinitionApprovalStep>(), }, PostDeployApprovals = new AzureDevOpsReleaseDefinitionApproval() { Approvals = new HashSet<AzureDevOpsReleaseDefinitionApprovalStep> { new AzureDevOpsReleaseDefinitionApprovalStep { IsAutomated = true, }, }, }, }, }, Triggers = new HashSet<AzureDevOpsTrigger>(), Links = new AzureDevOpsReleaseLinks { Web = new AzureDevOpsLink { Href = testUri, }, }, }, new AzureDevOpsReleaseDefinition { Name = testString, Environments = new HashSet<AzureDevOpsReleaseDefinitionEnvironment> { new AzureDevOpsReleaseDefinitionEnvironment { Name = testString, Conditions = new HashSet<AzureDevOpsCondition> { new AzureDevOpsCondition { ConditionType = AzureDevOpsConditionType.Artifact, Value = $"{{\"sourceBranch\":\"master\"}}", }, }, DeployPhases = new HashSet<AzureDevOpsDeployPhase> { new AzureDevOpsDeployPhase { WorkflowTasks = new HashSet<AzureDevOpsWorkflowTask> { new AzureDevOpsWorkflowTask { Name = testString, }, }, }, }, PreDeployApprovals = new AzureDevOpsReleaseDefinitionApproval { Approvals = new HashSet<AzureDevOpsReleaseDefinitionApprovalStep> { new AzureDevOpsReleaseDefinitionApprovalStep { IsAutomated = false, Approver = testIdentity, }, }, }, PostDeployApprovals = new AzureDevOpsReleaseDefinitionApproval() { Approvals = new HashSet<AzureDevOpsReleaseDefinitionApprovalStep> { new AzureDevOpsReleaseDefinitionApprovalStep { IsAutomated = false, Approver = testIdentity, }, }, }, }, }, Triggers = new HashSet<AzureDevOpsTrigger> { new AzureDevOpsTrigger { TriggerType = AzureDevOpsTriggerType.ArtifactSource, TriggerConditions = new HashSet<AzureDevOpsTriggerCondition> { new AzureDevOpsTriggerCondition { SourceBranch = testString, }, }, }, }, Links = new AzureDevOpsReleaseLinks { Web = new AzureDevOpsLink { Href = testUri, }, }, }, new AzureDevOpsReleaseDefinition { Name = testString, Environments = new HashSet<AzureDevOpsReleaseDefinitionEnvironment> { new AzureDevOpsReleaseDefinitionEnvironment { Name = testString, Conditions = new HashSet<AzureDevOpsCondition> { new AzureDevOpsCondition { ConditionType = AzureDevOpsConditionType.EnvironmentState, Name = testString, }, new AzureDevOpsCondition { ConditionType = AzureDevOpsConditionType.Artifact, Value = $"{{\"sourceBranch\":\"master\"}}", }, }, DeployPhases = new HashSet<AzureDevOpsDeployPhase> { new AzureDevOpsDeployPhase { WorkflowTasks = new HashSet<AzureDevOpsWorkflowTask> { new AzureDevOpsWorkflowTask { Name = testString, }, }, }, }, PreDeployApprovals = new AzureDevOpsReleaseDefinitionApproval { Approvals = new HashSet<AzureDevOpsReleaseDefinitionApprovalStep> { new AzureDevOpsReleaseDefinitionApprovalStep { IsAutomated = false, Approver = testIdentity, }, }, }, PostDeployApprovals = new AzureDevOpsReleaseDefinitionApproval() { Approvals = new HashSet<AzureDevOpsReleaseDefinitionApprovalStep> { new AzureDevOpsReleaseDefinitionApprovalStep { IsAutomated = false, Approver = testIdentity, }, }, }, }, }, Triggers = new HashSet<AzureDevOpsTrigger> { new AzureDevOpsTrigger { TriggerType = AzureDevOpsTriggerType.ArtifactSource, }, }, Links = new AzureDevOpsReleaseLinks { Web = new AzureDevOpsLink { Href = testUri, }, }, }, }, }; var testCollection = new AzureDevOpsCollection { Name = testString }; testCollection.Projects.Add(testProject); var testAzureDevOpsInstance = new AzureDevOpsInstance(); testAzureDevOpsInstance.Collections.Add(testCollection); var systemUnderTest = new ReleaseDefinitionReport(); // Act var actual = systemUnderTest.Generate(testAzureDevOpsInstance); // Assert actual.Should().NotBeNull(); actual.Should().Be(expected); }