public async Task Should_Include_Closed_Milestone_If_Specified() { // Given var dbContextOptions = new DbContextOptionsBuilder <GitBucketDbContext>() .UseInMemoryDatabase(databaseName: "Should_Include_Closed_Milestone_If_Specified") .Options; var dbContext = new GitBucketDbContext(dbContextOptions); var options = new MilestoneOptions { ExecutedDate = new DateTime(2018, 7, 1), IncludeClosed = true }; dbContext.Milestones.Add(new Milestone { MilestoneId = 1, Title = "v0.1.0", RepositoryName = "test1", DueDate = new DateTime(2018, 7, 1), ClosedDate = new DateTime(2018, 7, 1), Description = "Implement xxx feature", UserName = "******", Issues = new[] { new Issue { IssueId = 1, AssignedUserName = "******", UserName = "******", RepositoryName = "test1", OpenedUserName = "******", Title = "Implement xxx feature", } } }); dbContext.SaveChanges(); var service = new MilestoneService(dbContext, FakeConsole); // When var result = await service.ShowMilestones(options); // Then Assert.Equal(0, result); Assert.Equal(3, FakeConsole.Messages.Count); Assert.Empty(FakeConsole.WarnMessages); Assert.Empty(FakeConsole.ErrorMessages); Assert.Equal("There are 1 milestone.", FakeConsole.Messages[0]); Assert.Equal(string.Empty, FakeConsole.Messages[1]); Assert.Equal("* [root/test1], [v0.1.0], [2018/07/01], [Implement xxx feature], [user1]", FakeConsole.Messages[2]); }
public async void Milestone_Has_Issue_Without_Labels() { // Given var options = new ReleaseOptions { MileStone = "v1.0.0", Owner = "root", Repository = "test" }; var dbContextOptions = new DbContextOptionsBuilder <GitBucketDbContext>() .UseInMemoryDatabase(databaseName: "Milestone_Has_Issue_Without_Labels") .Options; var dbContext = new GitBucketDbContext(dbContextOptions); dbContext.Issues.Add(new Core.Models.Issue { Milestone = new Core.Models.Milestone { RepositoryName = options.Repository, Title = options.MileStone, UserName = options.Owner, }, RepositoryName = options.Repository, UserName = options.Owner, OpenedUserName = "******", Title = "Implement xxx feature", }); dbContext.SaveChanges(); var service = new ReleaseService(dbContext, FakeConsole); // When var result = await service.Execute(options, new Mock <IGitHubClient>().Object); // Then Assert.Equal(1, result); Assert.Single(FakeConsole.Messages); Assert.Equal("", FakeConsole.Messages[0]); Assert.Equal(3, FakeConsole.WarnMessages.Count); Assert.Equal("There are unclosed issues in \"v1.0.0\".", FakeConsole.WarnMessages[0]); Assert.Equal("Do you want to continue?([Y]es/[N]o): yes", FakeConsole.WarnMessages[1]); Assert.Equal("There are issues which have no labels in \"v1.0.0\".", FakeConsole.WarnMessages[2]); Assert.Empty(FakeConsole.ErrorMessages); }
public async void Milestone_Has_No_PullRequest() { // Given var dbContextOptions = new DbContextOptionsBuilder <GitBucketDbContext>() .UseInMemoryDatabase(databaseName: "Milestone_Has_No_PullRequest") .Options; var dbContext = new GitBucketDbContext(dbContextOptions); var options = new ReleaseOptions { FromPullRequest = true, MileStone = "v1.0.0", Owner = "root", Repository = "test" }; var service = new ReleaseService(dbContext, FakeConsole); // When var result = await service.Execute(options, new Mock <IGitHubClient>().Object); // Then Assert.Equal(1, result); Assert.Empty(FakeConsole.Messages); Assert.Single(FakeConsole.WarnMessages); Assert.Empty(FakeConsole.ErrorMessages); Assert.Equal("There are no pull requests related to \"v1.0.0\".", FakeConsole.WarnMessages[0]); }
public async Task Should_Return_If_No_Milestone() { // Given var dbContextOptions = new DbContextOptionsBuilder <GitBucketDbContext>() .UseInMemoryDatabase(databaseName: "Should_Return_If_No_Milestone") .Options; var dbContext = new GitBucketDbContext(dbContextOptions); var options = new MilestoneOptions { ExecutedDate = new DateTime(2018, 7, 29) }; var service = new MilestoneService(dbContext, FakeConsole); // When var result = await service.ShowMilestones(options); // Then Assert.Equal(0, result); Assert.Single(FakeConsole.Messages); Assert.Empty(FakeConsole.WarnMessages); Assert.Empty(FakeConsole.ErrorMessages); Assert.Equal("There are no milestone.", FakeConsole.Messages[0]); }
private static GitBucketDbContext EnsureDbCreated(ReleaseOptions options) { var dbContextOptions = new DbContextOptionsBuilder <GitBucketDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()) .Options; var dbContext = new GitBucketDbContext(dbContextOptions); var milestone = new Core.Models.Milestone { RepositoryName = options.Repository, Title = options.MileStone, UserName = options.Owner, }; var highPriority = new Core.Models.Priority { Ordering = 0, PriorityName = "high", RepositoryName = options.Repository, UserName = options.Owner, Color = "red", }; var defaultPriority = new Core.Models.Priority { Ordering = 1, PriorityName = "default", RepositoryName = options.Repository, UserName = options.Owner, Color = "red", }; dbContext.Issues.AddRange(new List <Core.Models.Issue> { new Core.Models.Issue { Closed = true, IssueId = 1, Milestone = milestone, Priority = highPriority, RepositoryName = options.Repository, Title = "Found a bug!", UserName = options.Owner, OpenedUserName = "******", }, new Core.Models.Issue { Closed = true, IssueId = 2, Milestone = milestone, Priority = defaultPriority, RepositoryName = options.Repository, Title = "Another bug", UserName = options.Owner, OpenedUserName = "******", }, new Core.Models.Issue { Closed = true, IssueId = 3, Milestone = milestone, Priority = defaultPriority, RepositoryName = options.Repository, Title = "Some improvement on build", UserName = options.Owner, OpenedUserName = "******", }, new Core.Models.Issue { Closed = true, IssueId = 4, Milestone = milestone, Priority = defaultPriority, PullRequest = true, RepositoryName = options.Repository, Title = "Fix a bug", UserName = options.Owner, OpenedUserName = "******", } }); dbContext.IssueLabels.AddRange(new List <Core.Models.IssueLabel> { new Core.Models.IssueLabel { IssueId = 1, LabelId = 10, RepositoryName = options.Repository, UserName = options.Owner, }, new Core.Models.IssueLabel { IssueId = 2, LabelId = 10, RepositoryName = options.Repository, UserName = options.Owner, }, new Core.Models.IssueLabel { IssueId = 3, LabelId = 30, RepositoryName = options.Repository, UserName = options.Owner, }, new Core.Models.IssueLabel { IssueId = 4, LabelId = 10, RepositoryName = options.Repository, UserName = options.Owner, } }); dbContext.Labels.AddRange(new List <Core.Models.Label> { new Core.Models.Label { LabelId = 10, LabelName = "Bug", RepositoryName = options.Repository, UserName = options.Owner, Color = "red", }, new Core.Models.Label { LabelId = 30, LabelName = "Enhancement", RepositoryName = options.Repository, UserName = options.Owner, Color = "red", } }); dbContext.SaveChanges(); return(dbContext); }
public async Task Should_Show_Multiple_Milestones() { // Given var dbContextOptions = new DbContextOptionsBuilder <GitBucketDbContext>() .UseInMemoryDatabase(databaseName: "Should_Show_Multiple_Milestones") .Options; var dbContext = new GitBucketDbContext(dbContextOptions); var options = new MilestoneOptions { ExecutedDate = new DateTime(2018, 7, 1), IncludeClosed = true }; dbContext.Milestones.AddRange(new List <Core.Models.Milestone> { new Milestone { MilestoneId = 1, Title = "v0.1.0", RepositoryName = "test1", DueDate = new DateTime(2018, 6, 30), ClosedDate = null, Description = "Error", UserName = "******", Issues = new[] { new Issue { IssueId = 1, AssignedUserName = "******", UserName = "******", RepositoryName = "test1", OpenedUserName = "******", Title = "Implement xxx feature", } } }, new Milestone { MilestoneId = 2, Title = "v0.2.0", RepositoryName = "test1", DueDate = new DateTime(2018, 7, 1), ClosedDate = new DateTime(2018, 7, 1), Description = "Closed", UserName = "******", Issues = new[] { new Issue { IssueId = 2, AssignedUserName = "******", UserName = "******", RepositoryName = "test1", OpenedUserName = "******", Title = "Implement xxx feature", } } }, new Milestone { MilestoneId = 3, Title = "v0.3.0", RepositoryName = "test1", DueDate = new DateTime(2018, 7, 7), ClosedDate = null, Description = "Warn", UserName = "******", Issues = new[] { new Issue { IssueId = 3, AssignedUserName = "******", UserName = "******", RepositoryName = "test1", OpenedUserName = "******", Title = "Implement xxx feature", } } }, new Milestone { MilestoneId = 4, Title = "v0.4.0", RepositoryName = "test1", DueDate = new DateTime(2018, 7, 8), ClosedDate = null, Description = "Info", UserName = "******", Issues = new[] { new Issue { IssueId = 4, AssignedUserName = "******", UserName = "******", RepositoryName = "test1", OpenedUserName = "******", Title = "Implement xxx feature", } } } }); dbContext.SaveChanges(); var service = new MilestoneService(dbContext, FakeConsole); // When var result = await service.ShowMilestones(options); // Then Assert.Equal(0, result); Assert.Equal(4, FakeConsole.Messages.Count); Assert.Single(FakeConsole.WarnMessages); Assert.Single(FakeConsole.ErrorMessages); Assert.Equal("There are 4 milestones.", FakeConsole.Messages[0]); Assert.Equal(string.Empty, FakeConsole.Messages[1]); Assert.Equal("* [root/test1], [v0.1.0], [2018/06/30], [Error], [user1]", FakeConsole.ErrorMessages[0]); Assert.Equal("* [root/test1], [v0.2.0], [2018/07/01], [Closed], [user1]", FakeConsole.Messages[2]); Assert.Equal("* [root/test1], [v0.3.0], [2018/07/07], [Warn], [user1]", FakeConsole.WarnMessages[0]); Assert.Equal("* [root/test1], [v0.4.0], [2018/07/08], [Info], [user1]", FakeConsole.Messages[3]); }