Inheritance: IIdentifiableEntity, IVersionableEntity
        public void GetByProjectCodeAndIssueNumberTest()
        {
            Mock<IProjectRepository> fakeProjectRepo = new Mock<IProjectRepository>();
            Mock<IIssueRepository> fakeIssueRepo = new Mock<IIssueRepository>();
            Mock<IStateWorkflowRepository> fakeStateWorkflowRepo = new Mock<IStateWorkflowRepository>();
            Mock<ICommentRepository> fakeCommentRepo = new Mock<ICommentRepository>();

            var issueService = new IssueService(fakeIssueRepo.Object, fakeCommentRepo.Object);

            var firstProject = new Project() { Code = "COD"};
            var secodProject = new Project() { Code = "COP" };

            var firstIssueId = Guid.NewGuid();
            var secondIssueId = Guid.NewGuid();
            var thirdIssueId = Guid.NewGuid();
            var fourthIssueId = Guid.NewGuid();

            var firstIssue = new Issue() { Active = true, CodeNumber = 1, Description = "firstIssue", Id = firstIssueId, Name = "first", Type = Entities.IssueType.Bug, Project = firstProject };
            var secondIssue = new Issue() { Active = true, CodeNumber = 2, Description = "secondIssue", Id = firstIssueId, Name = "second", Type = Entities.IssueType.Task, Project = secodProject };
            var thirdIssue = new Issue() { Active = true, CodeNumber = 3, Description = "thirdIssue", Id = firstIssueId, Name = "third", Type = Entities.IssueType.Question, Project = secodProject };
            var fourthIssue = new Issue() { Active = true, CodeNumber = 4, Description = "fourthIssue", Id = firstIssueId, Name = "fourth", Type = Entities.IssueType.Bug, Project = secodProject };

            List<Issue> issues = new List<Issue>()
            {
                firstIssue,secondIssue,thirdIssue,fourthIssue
            };

            fakeIssueRepo.Setup(i => i.Fetch()).Returns(issues.AsQueryable());

            var actual = issueService.GetByProjectCodeAndIssueNumber("COD", 1);
            var expected = firstIssue;

            Assert.AreEqual(expected, actual);
        }
        public void GetAllIssuesTest()
        {
            Mock<IProjectRepository> fakeProjectRepo = new Mock<IProjectRepository>();
            Mock<IIssueRepository> fakeIssueRepo = new Mock<IIssueRepository>();
            Mock<IStateWorkflowRepository> fakeStateWorkflowRepo = new Mock<IStateWorkflowRepository>();
            Mock<ICommentRepository> fakeCommentRepo = new Mock<ICommentRepository>();

            var issueService = new IssueService(fakeIssueRepo.Object, fakeCommentRepo.Object);

            var firstIssueId = Guid.NewGuid();
            var secondIssueId = Guid.NewGuid();
            var thirdIssueId = Guid.NewGuid();
            var fourthIssueId = Guid.NewGuid();

            var firstIssue = new Issue() { Active = true, CodeNumber = 1, Description = "firstIssue", Id = firstIssueId, Name = "first", Type = Entities.IssueType.Bug };
            var secondIssue = new Issue() { Active = true, CodeNumber = 2, Description = "secondIssue", Id = firstIssueId, Name = "second", Type = Entities.IssueType.Task };
            var thirdIssue = new Issue() { Active = true, CodeNumber = 3, Description = "thirdIssue", Id = firstIssueId, Name = "third", Type = Entities.IssueType.Question };
            var fourthIssue = new Issue() { Active = true, CodeNumber = 4, Description = "fourthIssue", Id = firstIssueId, Name = "fourth", Type = Entities.IssueType.Bug };

            List<Issue> issues = new List<Issue>()
            {
                firstIssue,secondIssue,thirdIssue,fourthIssue
            };

            fakeIssueRepo.Setup(i => i.Fetch()).Returns(issues.AsQueryable());

            var actual = issueService.GetAllIssues();

            Assert.AreEqual(actual.Count, 4);
        }
        public void GetIssueCountTest()
        {
            Mock<IProjectRepository> fakeProjectRepo = new Mock<IProjectRepository>();
            Mock<IIssueRepository> fakeIssueRepo = new Mock<IIssueRepository>();
            Mock<IStateWorkflowRepository> fakeStateWorkflowRepo = new Mock<IStateWorkflowRepository>();
            Mock<ICommentRepository> fakeCommentRepo = new Mock<ICommentRepository>();

            var issueService = new IssueService(fakeIssueRepo.Object, fakeCommentRepo.Object);

            var firstProjectId = Guid.NewGuid();
            var secondProjectId = Guid.NewGuid();

            var firstProject = new Project() { Code = "COD", Id = firstProjectId };
            var secodProject = new Project() { Code = "COP", Id = secondProjectId };

            var firstIssueId = Guid.NewGuid();
            var secondIssueId = Guid.NewGuid();
            var thirdIssueId = Guid.NewGuid();
            var fourthIssueId = Guid.NewGuid();

            var firstIssue = new Issue() { Active = true, CodeNumber = 1, Description = "firstIssue", Id = firstIssueId, Name = "first", Type = Entities.IssueType.Bug, ProjectId = firstProjectId };
            var secondIssue = new Issue() { Active = true, CodeNumber = 2, Description = "secondIssue", Id = firstIssueId, Name = "second", Type = Entities.IssueType.Task, ProjectId = firstProjectId };
            var thirdIssue = new Issue() { Active = true, CodeNumber = 3, Description = "thirdIssue", Id = firstIssueId, Name = "third", Type = Entities.IssueType.Question, ProjectId = secondProjectId };
            var fourthIssue = new Issue() { Active = true, CodeNumber = 4, Description = "fourthIssue", Id = firstIssueId, Name = "fourth", Type = Entities.IssueType.Bug, ProjectId = secondProjectId };

            List<Issue> issues = new List<Issue>()
            {
                firstIssue,secondIssue,thirdIssue,fourthIssue
            };

            fakeIssueRepo.Setup(i => i.FindBy(It.IsAny<Expression<Func<Issue, bool>>>()))
                .Returns((Expression<Func<Issue, bool>> expression) => issues.AsQueryable().Where(expression));

            Project nullProject = null;

            var actual = issueService.GetIssueCount(Entities.IssueType.Bug, nullProject, true);
            var expected = 2;

            Assert.AreEqual(expected, actual);

            actual = issueService.GetIssueCount(Entities.IssueType.Bug, secodProject, true);
            expected = 1;

            Assert.AreEqual(expected, actual);
        }
        public void GetResolvedIssuesTest()
        {
            Mock<IProjectRepository> fakeProjectRepo = new Mock<IProjectRepository>();
            Mock<IIssueRepository> fakeIssueRepo = new Mock<IIssueRepository>();
            Mock<IStateWorkflowRepository> fakeStateWorkflowRepo = new Mock<IStateWorkflowRepository>();
            Mock<ICommentRepository> fakeCommentRepo = new Mock<ICommentRepository>();

            var issueService = new IssueService(fakeIssueRepo.Object, fakeCommentRepo.Object);

            var firstProjectId = Guid.NewGuid();
            var secondProjectId = Guid.NewGuid();

            var firstProject = new Project() { Code = "COD", Id = firstProjectId };
            var secodProject = new Project() { Code = "COP", Id = secondProjectId };

            var newState = new State() { IsInitial = true };
            var inProgress = new State() { IsInitial = false };

            var firstIssueId = Guid.NewGuid();
            var secondIssueId = Guid.NewGuid();
            var thirdIssueId = Guid.NewGuid();
            var fourthIssueId = Guid.NewGuid();

            var firstIssue = new Issue() { Active = true, CodeNumber = 1, Description = "firstIssue", Id = firstIssueId, Name = "first", Type = Entities.IssueType.Bug, ProjectId = firstProjectId, State = newState, ResolvedAt = new DateTime(2015, 1, 22) };
            var secondIssue = new Issue() { Active = true, CodeNumber = 2, Description = "secondIssue", Id = firstIssueId, Name = "second", Type = Entities.IssueType.Task, ProjectId = firstProjectId, State = inProgress, ResolvedAt = new DateTime(2015, 1, 28) };
            var thirdIssue = new Issue() { Active = true, CodeNumber = 3, Description = "thirdIssue", Id = firstIssueId, Name = "third", Type = Entities.IssueType.Question, ProjectId = secondProjectId, State = inProgress, ResolvedAt = new DateTime(2015, 3, 22) };
            var fourthIssue = new Issue() { Active = true, CodeNumber = 4, Description = "fourthIssue", Id = firstIssueId, Name = "fourth", Type = Entities.IssueType.Bug, ProjectId = secondProjectId, State = newState, ResolvedAt = new DateTime(2015, 1, 25) };

            List<Issue> issues = new List<Issue>()
            {
                firstIssue,secondIssue,thirdIssue,fourthIssue
            };

            fakeIssueRepo.Setup(i => i.FindBy(It.IsAny<Expression<Func<Issue, bool>>>()))
                .Returns((Expression<Func<Issue, bool>> expression) => issues.AsQueryable().Where(expression));

            var actual = issueService.GetResolvedIssues(firstProjectId ,new DateTime(2015, 1, 12), new DateTime(2015, 1, 25)).Count;
            var expected = 1;

            Assert.AreEqual(expected, actual);

            actual = issueService.GetResolvedIssues(firstProjectId, 2015, 1).Count;
            expected = 2;

            Assert.AreEqual(expected, actual);

            actual = issueService.GetResolvedIssues(secondProjectId, 2015, 1, 2).Count;
            expected = 1;

            Assert.AreEqual(expected, actual);
        }
Example #5
0
 public Issue Add(Issue issue)
 {
     return _issueRepo.Add(issue);
 }
Example #6
0
 public bool IsIssueInFinalState(Issue issue)
 {
     var finalStates = _stateService.GetFinalStateIds();
     return (finalStates.Contains(issue.StateId)) ? true : false;
 }