public async Task AssignTrigger(ProjectTriggerInputDto input) { var project = await _projectsRepository.FirstOrDefaultAsync(p => p.Id == input.ProjectId); if (project == null) { throw new InvalidInputException(@"Project was not found."); } var trigger = await _triggerRepository.FirstOrDefaultAsync(p => p.Id == input.TriggerId); if (trigger == null) { throw new InvalidInputException(@"Trigger was not found."); } var projectTrigger = await _projectTriggerRepository.FirstOrDefaultAsync(p => p.TriggerId == trigger.Id); if (projectTrigger != null) { throw new InvalidInputException(@"The trigger has already been assigned."); } projectTrigger = new ProjectTrigger { TriggerId = trigger.Id, ProjectId = project.Id }; await _projectTriggerRepository.InsertAsync(projectTrigger); }
public void FirePassesInLoginCredentialsAndHandlesFailure() { var credentials = new[] { new NameValuePair("user", "me") }; var innerTriggerMock = this.InitialiseTriggerMock(); var clientMock = InitialiseClientMock( false, NewProjectStatus("project", IntegrationStatus.Success, now)); Mock.Get(clientMock).Setup(_clientMock => _clientMock.Login(new List <NameValuePair>(credentials))).Returns(false).Verifiable(); var factoryMock = this.InitialiseFactoryMock(clientMock); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock, TriggerFirstTime = true, SecurityCredentials = credentials }; var actual = trigger.Fire(); this.InitialiseTriggerMockVerify(innerTriggerMock, 1); this.mocks.VerifyAll(); var expected = ModificationExistRequest(); Assert.AreEqual(expected, actual); }
public void FirePassesInLoginCredentialsAndLogsOut() { var credentials = new[] { new NameValuePair("user", "me") }; var innerTriggerMock = this.InitialiseTriggerMock(1); var clientMock = InitialiseClientMock( false, NewProjectStatus("project", IntegrationStatus.Success, now)); Expect.Call(clientMock.Login(new List <NameValuePair>(credentials))).Return(true); Expect.Call(clientMock.SessionToken).Return("token"); Expect.Call(() => clientMock.Logout()); var factoryMock = this.InitialiseFactoryMock(clientMock); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock, TriggerFirstTime = true, SecurityCredentials = credentials }; this.mocks.ReplayAll(); var actual = trigger.Fire(); this.mocks.VerifyAll(); var expected = ModificationExistRequest(); Assert.AreEqual(expected, actual); }
public static YamlProjectTrigger FromModel(ProjectTrigger model) { return(new YamlProjectTrigger { Name = model.Name, Type = model.Type, Properties = YamlProjectTriggerProperties.FromModel(model.Properties) }); }
public static YamlProjectTrigger FromModel(ProjectTrigger model) { return(new YamlProjectTrigger { Name = model.Identifier.Name, RenamedFrom = model.Identifier.RenamedFrom, Filter = YamlProjectTriggerFilter.FromModel(model.Filter), Action = YamlProjectTriggerAction.FromModel(model.Action) }); }
private async Task <bool> BeUniqueByProjectIdName(ApiProjectTriggerRequestModel model, CancellationToken cancellationToken) { ProjectTrigger record = await this.projectTriggerRepository.ByProjectIdName(model.ProjectId, model.Name); if (record == null || (this.existingRecordId != default(string) && record.Id == this.existingRecordId)) { return(true); } else { return(false); } }
public async Task <ApiProjectTriggerResponseModel> ByProjectIdName(string projectId, string name) { ProjectTrigger record = await this.projectTriggerRepository.ByProjectIdName(projectId, name); if (record == null) { return(null); } else { return(this.bolProjectTriggerMapper.MapBOToModel(this.dalProjectTriggerMapper.MapEFToBO(record))); } }
public void IntegrationCompletedShouldDelegateToInnerTrigger() { var innerTriggerMock = this.mocks.Create <ITrigger>(MockBehavior.Strict).Object; Mock.Get(innerTriggerMock).Setup(_innerTrigger => _innerTrigger.IntegrationCompleted()).Verifiable(); var trigger = new ProjectTrigger { InnerTrigger = innerTriggerMock }; trigger.IntegrationCompleted(); mocks.VerifyAll(); }
public virtual ProjectTrigger MapBOToEF( BOProjectTrigger bo) { ProjectTrigger efProjectTrigger = new ProjectTrigger(); efProjectTrigger.SetProperties( bo.Id, bo.IsDisabled, bo.JSON, bo.Name, bo.ProjectId, bo.TriggerType); return(efProjectTrigger); }
public void MapEFToBOList() { var mapper = new DALProjectTriggerMapper(); ProjectTrigger entity = new ProjectTrigger(); entity.SetProperties("A", true, "A", "A", "A", "A"); List <BOProjectTrigger> response = mapper.MapEFToBO(new List <ProjectTrigger>() { entity }); response.Count.Should().Be(1); }
public virtual BOProjectTrigger MapEFToBO( ProjectTrigger ef) { var bo = new BOProjectTrigger(); bo.SetProperties( ef.Id, ef.IsDisabled, ef.JSON, ef.Name, ef.ProjectId, ef.TriggerType); return(bo); }
public void IntegrationCompletedShouldDelegateToInnerTrigger() { var innerTriggerMock = this.mocks.StrictMock <ITrigger>(); Expect.Call(() => innerTriggerMock.IntegrationCompleted()); var trigger = new ProjectTrigger { InnerTrigger = innerTriggerMock }; mocks.ReplayAll(); trigger.IntegrationCompleted(); mocks.VerifyAll(); }
public void NextBuildShouldReturnInnerTriggerNextBuildIfUnknown() { var innerTriggerMock = this.mocks.Create <ITrigger>(MockBehavior.Strict).Object; Mock.Get(innerTriggerMock).SetupGet(_innerTrigger => _innerTrigger.NextBuild).Returns(now).Verifiable(); var trigger = new ProjectTrigger { InnerTrigger = innerTriggerMock }; var actual = trigger.NextBuild; mocks.VerifyAll(); Assert.AreEqual(now, actual); }
public void MapBOToEF() { var mapper = new DALProjectTriggerMapper(); var bo = new BOProjectTrigger(); bo.SetProperties("A", true, "A", "A", "A", "A"); ProjectTrigger response = mapper.MapBOToEF(bo); response.Id.Should().Be("A"); response.IsDisabled.Should().Be(true); response.JSON.Should().Be("A"); response.Name.Should().Be("A"); response.ProjectId.Should().Be("A"); response.TriggerType.Should().Be("A"); }
public void HandleExceptionInProjectLocator() { var innerTriggerMock = this.InitialiseTriggerMock(); var clientMock = this.InitialiseClientMock(true, NewProjectStatus("wrong", IntegrationStatus.Failure, now)); var factoryMock = this.InitialiseFactoryMock(clientMock); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; Assert.Throws <NoSuchProjectException>(() => trigger.Fire()); this.InitialiseTriggerMockVerify(innerTriggerMock, 1); this.mocks.VerifyAll(); }
public void NextBuildShouldReturnInnerTriggerNextBuildIfUnknown() { var innerTriggerMock = this.mocks.StrictMock <ITrigger>(); Expect.Call(innerTriggerMock.NextBuild).Return(now); var trigger = new ProjectTrigger { InnerTrigger = innerTriggerMock }; mocks.ReplayAll(); var actual = trigger.NextBuild; mocks.VerifyAll(); Assert.AreEqual(now, actual); }
public void MapEFToBO() { var mapper = new DALProjectTriggerMapper(); ProjectTrigger entity = new ProjectTrigger(); entity.SetProperties("A", true, "A", "A", "A", "A"); BOProjectTrigger response = mapper.MapEFToBO(entity); response.Id.Should().Be("A"); response.IsDisabled.Should().Be(true); response.JSON.Should().Be("A"); response.Name.Should().Be("A"); response.ProjectId.Should().Be("A"); response.TriggerType.Should().Be("A"); }
public void DoNotTriggerWhenInnerTriggerReturnsNoBuild() { var innerTriggerMock = this.mocks.Create <ITrigger>(MockBehavior.Strict).Object; Mock.Get(innerTriggerMock).Setup(_innerTrigger => _innerTrigger.Fire()).Returns(() => null).Verifiable(); var factoryMock = this.mocks.Create <ICruiseServerClientFactory>(MockBehavior.Strict).Object; var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; var actual = trigger.Fire(); this.mocks.VerifyAll(); Assert.IsNull(actual); }
public void ShouldNotTriggerOnFirstIntegration() { var innerTriggerMock = this.InitialiseTriggerMock(); var clientMock = InitialiseClientMock(true, NewProjectStatus("project", IntegrationStatus.Success, now)); var factoryMock = this.InitialiseFactoryMock(clientMock); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; var actual = trigger.Fire(); this.InitialiseTriggerMockVerify(innerTriggerMock, 1); this.mocks.VerifyAll(); Assert.IsNull(actual); }
public async void Get() { var mock = new ServiceMockFacade <IProjectTriggerRepository>(); var record = new ProjectTrigger(); mock.RepositoryMock.Setup(x => x.Get(It.IsAny <string>())).Returns(Task.FromResult(record)); var service = new ProjectTriggerService(mock.LoggerMock.Object, mock.RepositoryMock.Object, mock.ModelValidatorMockFactory.ProjectTriggerModelValidatorMock.Object, mock.BOLMapperMockFactory.BOLProjectTriggerMapperMock, mock.DALMapperMockFactory.DALProjectTriggerMapperMock); ApiProjectTriggerResponseModel response = await service.Get(default(string)); response.Should().NotBeNull(); mock.RepositoryMock.Verify(x => x.Get(It.IsAny <string>())); }
public void DoNotTriggerWhenInnerTriggerReturnsNoBuild() { var innerTriggerMock = this.mocks.StrictMock <ITrigger>(); Expect.Call(innerTriggerMock.Fire()).Return(null); var factoryMock = this.mocks.StrictMock <ICruiseServerClientFactory>(); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; this.mocks.ReplayAll(); var actual = trigger.Fire(); this.mocks.VerifyAll(); Assert.IsNull(actual); }
public void ShouldNotTriggerOnFirstIntegrationIfDependentProjectBuildFailedAndTriggerFirstTimeIsSet() { var innerTriggerMock = this.InitialiseTriggerMock(); var clientMock = InitialiseClientMock(true, NewProjectStatus("project", IntegrationStatus.Failure, now)); var factoryMock = this.InitialiseFactoryMock(clientMock); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock, TriggerFirstTime = true }; var actual = trigger.Fire(); this.InitialiseTriggerMockVerify(innerTriggerMock, 1); this.mocks.VerifyAll(); Assert.IsNull(actual); }
public void HandleSocketError() { var innerTriggerMock = this.InitialiseTriggerMock(); var clientMock = this.mocks.Create <CruiseServerClientBase>(MockBehavior.Strict).Object; var factoryMock = this.InitialiseFactoryMock(clientMock); Mock.Get(clientMock).SetupSet(_clientMock => _clientMock.SessionToken = It.IsAny <string>()).Verifiable(); Mock.Get(clientMock).Setup(_clientMock => _clientMock.GetProjectStatus()) .Throws(new SocketException()).Verifiable(); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; var actual = trigger.Fire(); this.InitialiseTriggerMockVerify(innerTriggerMock, 1); this.mocks.VerifyAll(); Assert.IsNull(actual); }
public void HandleSocketError() { var innerTriggerMock = this.InitialiseTriggerMock(1); var clientMock = this.mocks.StrictMock <CruiseServerClientBase>(); var factoryMock = this.InitialiseFactoryMock(clientMock); Expect.Call(clientMock.SessionToken).SetPropertyAndIgnoreArgument(); Expect.Call(clientMock.GetProjectStatus()) .Throw(new SocketException()); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; this.mocks.ReplayAll(); var actual = trigger.Fire(); this.mocks.VerifyAll(); Assert.IsNull(actual); }
public void ShouldTriggerOnFirstIntegrationIfDependentProjectBuildSucceededAndTriggerFirstTimeIsSet() { var innerTriggerMock = this.InitialiseTriggerMock(); var clientMock = InitialiseClientMock( true, NewProjectStatus("project", IntegrationStatus.Success, now)); var factoryMock = this.InitialiseFactoryMock(clientMock); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock, TriggerFirstTime = true }; var actual = trigger.Fire(); this.InitialiseTriggerMockVerify(innerTriggerMock, 1); this.mocks.VerifyAll(); var expected = ModificationExistRequest(); Assert.AreEqual(expected, actual); }
public void DoNotTriggerWhenDependentProjectBuildFails() { var innerTriggerMock = this.InitialiseTriggerMock(2); var clientMocks = new[] { InitialiseClientMock(true, NewProjectStatus("project", IntegrationStatus.Success, now)), InitialiseClientMock(true, NewProjectStatus("project", IntegrationStatus.Failure, later)) }; var factoryMock = this.InitialiseFactoryMock(clientMocks); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; this.mocks.ReplayAll(); trigger.Fire(); var actual = trigger.Fire(); this.mocks.VerifyAll(); Assert.IsNull(actual); }
public void DoNotTriggerIfProjectHasNotBuiltSinceLastPoll() { var innerTriggerMock = this.InitialiseTriggerMock(); var clientMocks = new[] { InitialiseClientMock(true, NewProjectStatus("project", IntegrationStatus.Success, now)), InitialiseClientMock(true, NewProjectStatus("project", IntegrationStatus.Success, now)) }; var factoryMock = this.InitialiseFactoryMock(clientMocks); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; trigger.Fire(); var actual = trigger.Fire(); this.InitialiseTriggerMockVerify(innerTriggerMock, 2); this.mocks.VerifyAll(); Assert.IsNull(actual); }
public void TriggerWhenDependentProjectBuildsSuccessfully() { var innerTriggerMock = this.InitialiseTriggerMock(); var clientMocks = new[] { InitialiseClientMock(true, NewProjectStatus("project", IntegrationStatus.Success, now)), InitialiseClientMock(true, NewProjectStatus("project", IntegrationStatus.Success, later)) }; var factoryMock = this.InitialiseFactoryMock(clientMocks); var trigger = new ProjectTrigger(factoryMock) { Project = "project", InnerTrigger = innerTriggerMock }; trigger.Fire(); var actual = trigger.Fire(); this.InitialiseTriggerMockVerify(innerTriggerMock, 2); this.mocks.VerifyAll(); var expected = ModificationExistRequest(); Assert.AreEqual(expected, actual); }
public static ProjectTriggerResource UpdateWith(this ProjectTriggerResource resource, ProjectTrigger model, string projectResourceId, IOctopusRepository repository) { resource.ProjectId = projectResourceId; resource.Name = model.Identifier.Name; resource.Filter = model.Filter.FromModel(repository); resource.Action = model.Action.FromModel(); return(resource); }
public static ProjectTriggerResource UpdateWith(this ProjectTriggerResource resource, ProjectTrigger model, string projectResourceId, IOctopusRepository repository) { resource.ProjectId = projectResourceId; resource.Name = model.Name; resource.Type = (ProjectTriggerType)model.Type; UpdateProjectTriggerProperties(resource.Properties, model.Properties, repository); return(resource); }