public void GetLabels_returns_a_label_with_2_open_tickets_before_one_with_1_open_tickets([Frozen, InMemory] IEntityData entityData, AllLabelsByPopularitySearcher sut, Label label1, Label label2, Ticket ticket1, Ticket ticket2, Ticket ticket3) { // Arrange ticket1.Closed = false; ticket2.Closed = false; ticket3.Closed = false; label1.Name = "Label 1"; label2.Name = "Label 2"; label1.Tickets.ReplaceContents(new[] { ticket1 }); label2.Tickets.ReplaceContents(new[] { ticket2, ticket3 }); entityData.Add(label1); entityData.Add(label2); // Act var result = sut.GetLabels(null, null); // Assert var labelNames = result.Select(x => x.Name).ToArray(); Assert.That(labelNames, Is.EqualTo(new [] { "Label 2", "Label 1" })); }
public void GetSprints_returns_only_open_sprints_when_request_is_default([Frozen, InMemory] IEntityData query, [Frozen, HardCodedSpec] ISpecForSprintInProject sprintSpec, [Frozen] ISpecForOpenSprint openSprintSpec, [Frozen, HardCodedSpec] ISpecForClosedSprint closedSprintSpec, SprintLister sut, [HasIdentity] Sprint sprintOne, [HasIdentity] Sprint sprintTwo, [HasIdentity] Sprint sprintThree) { // Arrange sprintOne.Closed = false; sprintTwo.Closed = true; sprintThree.Closed = false; query.Add(sprintOne); query.Add(sprintTwo); query.Add(sprintThree); var expected = new[] { sprintOne, sprintThree }; Mock.Get(openSprintSpec).Setup(x => x.GetExpression()).Returns(x => !x.Closed); // Act var result = sut.GetSprints(new ListSprintsRequest()); // Assert Assert.That(result, Is.EquivalentTo(expected)); }
public void GetSprints_orders_sprints_by_creation_timestamps_when_start_dates_are_missing([Frozen, InMemory] IEntityData query, [Frozen, HardCodedSpec] ISpecForSprintInProject sprintSpec, [Frozen, HardCodedSpec] ISpecForOpenSprint openSprintSpec, [Frozen, HardCodedSpec] ISpecForClosedSprint closedSprintSpec, SprintLister sut, [HasIdentity] Sprint sprintOne, [HasIdentity] Sprint sprintTwo, [HasIdentity] Sprint sprintThree) { // Arrange sprintOne.StartDate = null; sprintOne.CreationDate = new DateTime(2010, 6, 1); sprintTwo.StartDate = new DateTime(2010, 1, 1); sprintThree.StartDate = new DateTime(2012, 1, 1); query.Add(sprintOne); query.Add(sprintTwo); query.Add(sprintThree); var expected = new[] { sprintTwo, sprintOne, sprintThree }; var request = new ListSprintsRequest { ShowOpenSprints = true, ShowClosedSprints = true, }; // Act var result = sut.GetSprints(request); // Assert Assert.That(result, Is.EqualTo(expected)); }
public void GetLabels_returns_labels_in_relevance_order([Frozen, InMemory] IEntityData entityData, LabelsMatchingSearchByRelevanceSearcher sut, Label label1, Label label2, Label label3, Label label4) { // Arrange label1.Name = "Element"; label2.Name = "Elemental"; label3.Name = "Fire Elemental"; label4.Name = "Zebra"; entityData.Add(label4); entityData.Add(label3); entityData.Add(label1); entityData.Add(label2); // Act var result = sut.GetLabels("Element"); // Assert var labelNames = result.Select(x => x.Name).ToArray(); Assert.That(labelNames, Is.EqualTo(new [] { "Element", "Elemental", "Fire Elemental" })); }
public void GetTheoreticalTicketRelationships_returns_secondary_relationships_already_present([Frozen, InMemory] IEntityData data, Ticket ticket, [WithRelationship] IEnumerable <TicketRelationship> relationships, TheoreticalRelationshipProvider sut) { data.Add(ticket); foreach (var t in relationships.Select(x => x.PrimaryTicket)) { data.Add(t); } foreach (var relationship in relationships) { data.Add(relationship); } ticket.SecondaryRelationships.ReplaceContents(relationships); var expected = relationships .Select(x => new TheoreticalRelationship { PrimaryTicket = x.PrimaryTicket.GetIdentity(), SecondaryTicket = ticket.GetIdentity(), Relationship = x.Relationship, TicketRelationship = x.GetIdentity(), }) .ToList(); var result = sut.GetTheoreticalTicketRelationships(ticket.GetIdentity()); Assert.That(result, Is.EquivalentTo(expected)); }
Label CreateAndSaveLabel(string name) { var label = labelFactory.CreateLabel(name); entityData.Add(label); return(label); }
public CreateSprintResponse Create(CreateSprintRequest request) { var validationResult = ValidateRequest(request); var response = responseFactory.GetResponse(validationResult); if (!validationResult.IsSuccess) { return(response); } Sprint sprint; using (var trans = transactionFactory.GetTransaction()) { var project = projectGetter.GetCurrentProject(); if (project == null) { response.ProjectDoesNotExist = true; return(response); } sprint = CreateSprint(request, project); sprintRepo.Add(sprint); trans.Commit(); response.Sprint = sprint; } return(response); }
public CreateCommentResponse Create(CreateCommentRequest request) { var validator = validatorFactory.GetValidator(); var validationResult = validator.Validate(request); if (!validationResult.IsSuccess) { return(responseCreator(validationResult, null)); } Comment comment; using (var tran = transactionCreator.GetTransaction()) { var ticket = ticketRepo.Get(request.TicketId); comment = commentFactory.Create(request.Body); ticket.Comments.Add(comment); ticketRepo.Update(ticket); commentRepo.Add(comment); tran.Commit(); } return(responseCreator(validationResult, comment)); }
private void FullySetupLoggedInUser(User user, ICurrentUserInfo userInfo, IEntityData query, IIdentityReader identityReader) { SetupCurrentUserIdentity(user, userInfo, identityReader); query.Add(user); }
public CreateProjectResponse CreateNewProject(CreateProjectRequest request) { var project = mapper.Map <Project>(request); data.Add(project); var response = responseFactory(); response.ProjectIdentity = project.GetIdentity(); return(response); }
public void GetLabels_does_not_return_more_labels_than_the_maximum_when_it_is_specified([Frozen, InMemory] IEntityData entityData, AllLabelsByPopularitySearcher sut, Label label1, Label label2, Label label3, Label label4) { // Arrange entityData.Add(label1); entityData.Add(label2); entityData.Add(label3); entityData.Add(label4); // Act var result = sut.GetLabels(null, 3); // Assert Assert.That(result.Count, Is.EqualTo(3)); }
public void GetTheoreticalTicketRelationships_marks_up_relationships_for_removal([Frozen, InMemory] IEntityData data, Ticket ticket, [WithRelationship] IEnumerable <TicketRelationship> relationships, TicketRelationship toRemove, TheoreticalRelationshipProvider sut) { data.Add(ticket); foreach (var t in relationships.Select(x => x.PrimaryTicket)) { data.Add(t); } foreach (var relationship in relationships) { data.Add(relationship); } data.Add(toRemove); ticket.SecondaryRelationships.ReplaceContents(relationships); ticket.SecondaryRelationships.Add(toRemove); var expected = relationships .Select(x => new TheoreticalRelationship { PrimaryTicket = x.PrimaryTicket.GetIdentity(), SecondaryTicket = ticket.GetIdentity(), Relationship = x.Relationship, TicketRelationship = x.GetIdentity(), }) .Append(new TheoreticalRelationship { PrimaryTicket = toRemove.PrimaryTicket?.GetIdentity(), SecondaryTicket = toRemove.SecondaryTicket?.GetIdentity(), Relationship = toRemove.Relationship, TicketRelationship = toRemove.GetIdentity(), Type = TheoreticalRelationshipType.Removed, }) .ToList(); var result = sut.GetTheoreticalTicketRelationships(ticket.GetIdentity(), removed: new[] { new DeleteRelationshipRequest { TicketRelationshipId = toRemove.GetIdentity() } }); Assert.That(result, Is.EquivalentTo(expected)); }
void CreateInitialProject() { var project = new Project { Name = AgiilProject.Name, Code = AgiilProject.Code, NextAvailableTicketNumber = 1, }; data.Add(project); }
public Ticket CreateTicket(CreateTicketRequest request) { using (var trans = transactionFactory.GetTransaction()) { var ticket = wrappedInstance.CreateTicket(request); data.Add(ticket); trans.Commit(); logger.InfoFormat("Created ticket {0}: {1}", ticket.GetTicketReference().ToString(true), ticket.Title); return(ticket); } }
public void GetTicketByReference_uses_spec_to_filter_entity_query_results([InMemory] IEntityData repo, Ticket ticketOne, Ticket ticketTwo, Ticket ticketThree, TicketReference reference) { var spec = Mock.Of <ISpecForTicketReferenceEquality>(); Mock.Get(spec) .Setup(x => x.GetExpression()) .Returns((Ticket x) => x == ticketTwo); repo.Add(ticketOne); repo.Add(ticketTwo); repo.Add(ticketThree); var sut = new TicketReferenceQuery(repo, refParam => spec); var result = sut.GetTicketByReference(reference); Assert.That(result, Is.SameAs(ticketTwo)); }
public void GetCurrentProject_returns_project_by_id_if_already_set([HasIdentity] Project project, [Frozen, InMemory] IEntityData data, [Frozen] IAppSessionStore store, CurrentlyChosenProjectDecorator sut) { data.Add(project); var id = project.GetIdentity(); Mock.Get(store).Setup(x => x.TryGet(SessionKey.CurrentProjectIdentity, out id)).Returns(true); Assert.That(() => sut.GetCurrentProject(), Is.SameAs(project)); }
public void GetLabels_returns_a_matching_label([Frozen, InMemory] IEntityData entityData, ExistingLabelProvider sut, Label label) { // Arrange entityData.Add(label); // Act var result = sut.GetLabels(new [] { label.Name }); // Assert Assert.That(result, Has.Exactly(1).SameAs(label)); }
public void GetLabels_does_not_return_a_label_which_does_not_match_the_query([Frozen, InMemory] IEntityData entityData, LabelsMatchingSearchByRelevanceSearcher sut, Label label) { // Arrange label.Name = "Elephant"; entityData.Add(label); // Act var result = sut.GetLabels("zzz"); // Assert Assert.That(result.Count, Is.EqualTo(0)); }
public void GetLabels_does_not_return_a_non_matching_label([Frozen, InMemory] IEntityData entityData, ExistingLabelProvider sut, Label label, string labelName) { // Arrange entityData.Add(label); // Act var result = sut.GetLabels(new [] { labelName }); // Assert Assert.That(result, Is.Empty); }
void SetupInitialData(IEntityData data) { var project = new Project { Code = "AB" }; data.Add(project); var ticketType = new TicketType { Name = "Ticket" }; ((IEntity)ticketType).IdentityValue = 5L; data.Add(ticketType); var firstTicket = new Ticket { Project = project, TicketNumber = 11, }; ((IEntity)firstTicket).IdentityValue = 5L; var secondTicket = new Ticket { Project = project, TicketNumber = 22 }; ((IEntity)secondTicket).IdentityValue = 7L; data.Add(firstTicket); data.Add(secondTicket); var relationship = new NonDirectionalRelationship { PrimarySummary = "Relates" }; ((IEntity)relationship).IdentityValue = 6L; data.Add(relationship); }
public void CreateTicketRelationship_sets_up_relationship([Frozen, InMemory] IEntityData data, Relationship relationship, TicketReference ticketReference, RelationshipParticipant participationType, TicketRelationshipFactory sut) { // Arrange data.Add(relationship); // Act var result = sut.CreateTicketRelationship(relationship.GetIdentity(), ticketReference, participationType); // Assert Assert.That(result?.Relationship, Is.SameAs(relationship)); }
public void GetStoredCredentials_returns_credentials_when_user_is_found(LoginCredentials credentials, User user, [Frozen, InMemory] IEntityData data, UserCredentialsRepository sut) { // Arrange user.GenerateIdentity(); user.Username = credentials.Username; data.Add(user); // Act var result = sut.GetStoredCredentials(credentials); // Assert Assert.NotNull(result); }
public void GetStoredCredentials_returns_matching_serialized_credentials_when_user_found(LoginCredentials credentials, User user, [Frozen, InMemory] IEntityData data, UserCredentialsRepository sut) { // Arrange user.GenerateIdentity(); user.Username = credentials.Username; data.Add(user); // Act var result = sut.GetStoredCredentials(credentials); // Assert Assert.AreEqual(user.SerializedCredentials, result.SerializedCredentials); }
public void GetStoredCredentials_returns_correct_identity_when_user_found(LoginCredentials credentials, User user, [Frozen, InMemory] IEntityData data, UserCredentialsRepository sut) { // Arrange user.GenerateIdentity(); user.Username = credentials.Username; data.Add(user); // Act var result = sut.GetStoredCredentials(credentials); // Assert Assert.AreEqual(user.GetIdentity(), result.UserInformation.Identity); }
public void Edit_passes_correct_ticket_to_editing_service(EditTicketRequest request, [Frozen, AlwaysPasses] ICreatesValidators <EditTicketRequest> validatorFactory, [Frozen, CreatesTransaction] IGetsTransaction transactionCreator, [InMemory, Frozen] IEntityData data, Ticket ticket, [Frozen] IEditsTicket editor, EditTicketRequestHandler sut) { // Arrange data.Add(ticket); request.Identity = ticket.GetIdentity(); // Act sut.Edit(request); // Assert Mock.Get(editor).Verify(x => x.Edit(ticket, request), Times.Once); }
public void GetTicketDetailDto_returns_mapped_dto_when_ticket_exists([Frozen] IGetsTicketByReference ticketProvider, [Frozen, InMemory] IEntityData data, [Frozen] IMapper mapper, TicketDetailDtoProvider sut, TicketReference reference, TicketDetailDto dto, Ticket ticket) { Mock.Get(ticketProvider) .Setup(x => x.GetTicketByReference(reference)) .Returns(ticket); data.Add(ticket); Mock.Get(mapper) .Setup(x => x.Map <TicketDetailDto>(ticket)) .Returns(dto); var result = sut.GetTicketDetailDto(reference); Assert.That(result, Is.SameAs(dto)); }
public void Edit_returns_edited_ticket_in_response(EditTicketRequest request, [Frozen, AlwaysPasses] ICreatesValidators <EditTicketRequest> validatorFactory, [Frozen, CreatesTransaction] IGetsTransaction transactionCreator, [InMemory, Frozen] IEntityData data, [HasIdentity] Ticket ticket, [Frozen] ICreatesEditTicketResponse editResponseCreator, EditTicketRequestHandler sut) { // Arrange data.Add(ticket); request.Identity = ticket.GetIdentity(); // Act sut.Edit(request); // Assert Mock.Get(editResponseCreator) .Verify(x => x.GetResponse(It.IsAny <IValidationResult>(), ticket), Times.Once); }
Sprint CreateSprintOne(Project project) { var sprint = new Sprint { Name = "Sprint one", Description = "This is sprint number one", CreationDate = new DateTime(2011, 1, 1), StartDate = new DateTime(2011, 3, 1), EndDate = new DateTime(2011, 4, 1), }; project.Sprints.Add(sprint); repo.Add(sprint); return(sprint); }