public async Task AddBuildToProject_AddBuild_AndUpdatesBuildsPerConnection_AndSendMappedInfoToClient() { string connectionId = _fixture.Create <string>(); A.CallTo(() => _context.ConnectionId).Returns(connectionId); Project project = _fixture.Create <Project>(); BuildConfig build = _fixture.Create <BuildConfig>(); BuildConfig newBuild = _fixture.Create <BuildConfig>(); A.CallTo(() => _commandProcessor.AddBuildConfigToProject(project.Id, build)) .Returns(newBuild); A.CallTo(() => _fakeClients.Client(connectionId)).Returns(_fakeClient); CiDashboardHub hub = new CiDashboardHub(_connectionsManager, _commandProcessor, _infoQuery, _refreshInfo) { Context = _context }; hub.Clients = _fakeClients; await hub.AddBuildToProject(project.Id, build); A.CallTo(() => _commandProcessor.AddBuildConfigToProject(project.Id, build)) .MustHaveHappened(); A.CallTo(() => _connectionsManager.UpdateBuildConfigs(connectionId, A <IEnumerable <BuildConfig> > .That.Matches(l => l.First() == newBuild))) .MustHaveHappened(); A.CallTo(() => _fakeClient .SendUpdatedBuild(A <BuildConfigUpdated> .That.Matches(p => p.OldId == build.Id && p.Build == newBuild))) .MustHaveHappened(); }
public async Task AddBuildToProject(int projectId, BuildConfig build) { string connectionId = Context.ConnectionId; BuildConfig buildCreated = await _commandProcessor.AddBuildConfigToProject(projectId, build); if (buildCreated != null) { await _connectionsManager.UpdateBuildConfigs(connectionId, new List <BuildConfig> { buildCreated }); Clients.Client(connectionId) .SendUpdatedBuild(new BuildConfigUpdated { OldId = build.Id, Build = buildCreated }); } }