Browse Source

added more unit tests

pull/5418/head
İsmail ÇAĞDAŞ 6 years ago
parent
commit
00c85feaba
  1. 16
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Build/GitRepositoryBuildStatus.cs
  2. 143
      framework/test/Volo.Abp.Cli.Core.Tests/Volo/Abp/Cli/Build/GitRepositoryBuildStatus_Tests.cs

16
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Build/GitRepositoryBuildStatus.cs

@ -53,13 +53,17 @@ namespace Volo.Abp.Cli.Build
{
foreach (var dependingRepository in DependingRepositories)
{
return GetChildInternal(dependingRepository, repositoryName);
var child = GetChildInternal(dependingRepository, repositoryName);
if (child != null)
{
return child;
}
}
return null;
}
public string GetUniqueName(string uniqueName)
public string GetUniqueName(string prefix)
{
var name = RepositoryName + "_" + BranchName;
foreach (var dependingRepository in DependingRepositories)
@ -67,7 +71,7 @@ namespace Volo.Abp.Cli.Build
AddToUniqueName(dependingRepository, name);
}
return (uniqueName.IsNullOrEmpty() ? "" : uniqueName + "_") + name.ToMd5();
return (prefix.IsNullOrEmpty() ? "" : prefix + "_") + name.ToMd5();
}
public void AddOrUpdateProjectStatus(DotNetProjectBuildStatus status)
@ -116,7 +120,11 @@ namespace Volo.Abp.Cli.Build
foreach (var dependingRepository in repositoryBuildStatus.DependingRepositories)
{
return GetChildInternal(dependingRepository, repositoryName);
var child = GetChildInternal(dependingRepository, repositoryName);
if (child != null)
{
return child;
}
}
return null;

143
framework/test/Volo.Abp.Cli.Core.Tests/Volo/Abp/Cli/Build/GitRepositoryBuildStatus_Tests.cs

@ -16,7 +16,7 @@ namespace Volo.Abp.Cli.Build
_gitRepositoryHelper = Substitute.For<IGitRepositoryHelper>();
services.AddTransient(provider => _gitRepositoryHelper);
}
[Fact]
public void Add_New_Build_Status_Test()
{
@ -48,10 +48,10 @@ namespace Volo.Abp.Cli.Build
};
existingBuildStatus.MergeWith(newBuildStatus);
existingBuildStatus.SucceedProjects.Count.ShouldBe(2);
}
[Fact]
public void Update_Existing_Build_Status_Test()
{
@ -89,10 +89,12 @@ namespace Volo.Abp.Cli.Build
existingBuildStatus.MergeWith(newBuildStatus);
existingBuildStatus.SucceedProjects.Count.ShouldBe(2);
existingBuildStatus.GetSelfOrChild("volo").SucceedProjects.First(p => p.CsProjPath == "project1.csproj").CommitId.ShouldBe("2");
existingBuildStatus.GetSelfOrChild("volo").SucceedProjects.First(p => p.CsProjPath == "project2.csproj").CommitId.ShouldBe("2");
existingBuildStatus.GetSelfOrChild("volo").SucceedProjects.First(p => p.CsProjPath == "project1.csproj")
.CommitId.ShouldBe("2");
existingBuildStatus.GetSelfOrChild("volo").SucceedProjects.First(p => p.CsProjPath == "project2.csproj")
.CommitId.ShouldBe("2");
}
[Fact]
public void Add_New_Build_Status_For_Child_Repository_Test()
{
@ -100,7 +102,7 @@ namespace Volo.Abp.Cli.Build
{
DependingRepositories = new List<GitRepositoryBuildStatus>()
{
new GitRepositoryBuildStatus("abp","dev")
new GitRepositoryBuildStatus("abp", "dev")
{
SucceedProjects = new List<DotNetProjectBuildStatus>
{
@ -121,7 +123,7 @@ namespace Volo.Abp.Cli.Build
{
DependingRepositories = new List<GitRepositoryBuildStatus>()
{
new GitRepositoryBuildStatus("abp","dev")
new GitRepositoryBuildStatus("abp", "dev")
{
SucceedProjects = new List<DotNetProjectBuildStatus>
{
@ -151,12 +153,12 @@ namespace Volo.Abp.Cli.Build
{
CommitId = "42"
};
existingBuildStatus.MergeWith(newBuildStatus);
existingBuildStatus.CommitId.ShouldBe("42");
}
[Fact]
public void Should_Not_Update_Repository_CommitId_When_New_CommitId_Is_Empty()
{
@ -172,9 +174,9 @@ namespace Volo.Abp.Cli.Build
{
CommitId = ""
};
existingBuildStatus.MergeWith(newBuildStatus);
existingBuildStatus.CommitId.ShouldBe("21");
}
@ -195,9 +197,122 @@ namespace Volo.Abp.Cli.Build
new GitRepositoryBuildStatus("repo-4", "dev")
}
};
existingBuildStatus.GetChild("repo-3").RepositoryName.ShouldBe("repo-3");
existingBuildStatus.GetChild("repo-4").RepositoryName.ShouldBe("repo-4");
}
[Fact]
public void GetUniqueName_Test()
{
var existingBuildStatus = new GitRepositoryBuildStatus("repo-1", "dev")
{
DependingRepositories = new List<GitRepositoryBuildStatus>()
{
new GitRepositoryBuildStatus("repo-2", "dev")
{
DependingRepositories = new List<GitRepositoryBuildStatus>()
{
new GitRepositoryBuildStatus("repo-3", "dev")
}
},
new GitRepositoryBuildStatus("repo-4", "dev")
}
};
existingBuildStatus.GetUniqueName("").ShouldBe("B25C935F97D7B3375530A96B392B7644");
existingBuildStatus.GetUniqueName("production").ShouldBe("production_B25C935F97D7B3375530A96B392B7644");
}
[Fact]
public void GetSelfOrChild_Test()
{
var existingBuildStatus = new GitRepositoryBuildStatus("repo-1", "dev")
{
DependingRepositories = new List<GitRepositoryBuildStatus>()
{
new GitRepositoryBuildStatus("repo-2", "dev")
{
DependingRepositories = new List<GitRepositoryBuildStatus>()
{
new GitRepositoryBuildStatus("repo-3", "dev")
}
},
new GitRepositoryBuildStatus("repo-4", "dev")
}
};
existingBuildStatus.GetSelfOrChild("repo-1").RepositoryName.ShouldBe("repo-1");
existingBuildStatus.GetSelfOrChild("repo-2").RepositoryName.ShouldBe("repo-2");
existingBuildStatus.GetSelfOrChild("repo-3").RepositoryName.ShouldBe("repo-3");
existingBuildStatus.GetSelfOrChild("repo-4").RepositoryName.ShouldBe("repo-4");
}
[Fact]
public void AddOrUpdateProjectStatus_Test()
{
var existingBuildStatus = new GitRepositoryBuildStatus("repo-1", "dev")
{
DependingRepositories = new List<GitRepositoryBuildStatus>()
{
new GitRepositoryBuildStatus("repo-2", "dev")
{
SucceedProjects = new List<DotNetProjectBuildStatus>
{
new DotNetProjectBuildStatus
{
CsProjPath = "A.csproj",
CommitId = "42"
}
},
DependingRepositories = new List<GitRepositoryBuildStatus>
{
new GitRepositoryBuildStatus("repo-3", "dev")
{
SucceedProjects = new List<DotNetProjectBuildStatus>
{
new DotNetProjectBuildStatus
{
CsProjPath = "B.csproj",
CommitId = "42"
}
}
}
}
},
new GitRepositoryBuildStatus("repo-4", "dev")
{
SucceedProjects = new List<DotNetProjectBuildStatus>()
{
new DotNetProjectBuildStatus
{
CsProjPath = "C.csproj",
CommitId = "42"
}
}
}
}
};
var repo2 = existingBuildStatus.GetChild("repo-2");
repo2.AddOrUpdateProjectStatus(new DotNetProjectBuildStatus
{
CommitId = "21",
CsProjPath = "A.csproj"
});
var repo3 = existingBuildStatus.GetChild("repo-3");
repo3.AddOrUpdateProjectStatus(new DotNetProjectBuildStatus
{
CommitId = "21",
CsProjPath = "X.csproj"
});
repo2.SucceedProjects.Count.ShouldBe(1);
repo2.SucceedProjects.ShouldContain(e=> e.CsProjPath == "A.csproj" && e.CommitId == "21");
repo3.SucceedProjects.Count.ShouldBe(2);
repo3.SucceedProjects.ShouldContain(e=> e.CsProjPath == "X.csproj" && e.CommitId == "21");
}
}
}

Loading…
Cancel
Save