added unit test for BuildProjectListSorter

pull/5418/head
İsmail ÇAĞDAŞ 5 years ago
parent b838fc1a4b
commit 6b2b081534

@ -0,0 +1,78 @@
using System.Collections.Generic;
using Shouldly;
using Xunit;
namespace Volo.Abp.Cli.Build
{
public class BuildProjectListSorter_Tests : AbpCliTestBase
{
private IBuildProjectListSorter _buildProjectListSorter;
public BuildProjectListSorter_Tests()
{
_buildProjectListSorter = GetRequiredService<IBuildProjectListSorter>();
}
[Fact]
public void SortByDependencies_Test()
{
// A -> B, C
// B -> D
// D -> F
// F -> C
// C -> G
// Final build order must be: G,
var repositoryName = "volo";
var source = new List<DotNetProjectInfo>
{
new DotNetProjectInfo(repositoryName, "A")
{
Dependencies = new List<DotNetProjectInfo>()
{
new DotNetProjectInfo(repositoryName, "B"),
new DotNetProjectInfo(repositoryName, "C")
}
},
new DotNetProjectInfo(repositoryName, "B")
{
Dependencies = new List<DotNetProjectInfo>()
{
new DotNetProjectInfo(repositoryName, "D")
}
},
new DotNetProjectInfo(repositoryName, "D")
{
Dependencies = new List<DotNetProjectInfo>()
{
new DotNetProjectInfo(repositoryName, "F")
}
},
new DotNetProjectInfo(repositoryName, "F")
{
Dependencies = new List<DotNetProjectInfo>()
{
new DotNetProjectInfo(repositoryName, "C")
}
},
new DotNetProjectInfo(repositoryName, "C")
{
Dependencies = new List<DotNetProjectInfo>()
{
new DotNetProjectInfo(repositoryName, "G")
}
},
new DotNetProjectInfo(repositoryName, "G")
};
var sortedDependencies = _buildProjectListSorter.SortByDependencies(source, new DotNetProjectInfoEqualityComparer());
sortedDependencies.Count.ShouldBe(6);
sortedDependencies[0].CsProjPath.ShouldBe("G");
sortedDependencies[1].CsProjPath.ShouldBe("C");
sortedDependencies[2].CsProjPath.ShouldBe("F");
sortedDependencies[3].CsProjPath.ShouldBe("D");
sortedDependencies[4].CsProjPath.ShouldBe("B");
sortedDependencies[5].CsProjPath.ShouldBe("A");
}
}
}
Loading…
Cancel
Save