public async Task RemoveProject(int projectId) { string connectionId = Context.ConnectionId; Project projectRemoved = await _commandProcessor.RemoveProject(projectId); if (projectRemoved != null) { foreach (BuildConfig buildConfig in projectRemoved.Builds) { await _connectionsManager.RemoveBuildConfig(connectionId, buildConfig); } await SendSuccessMessage(connectionId, "Project removed"); } }
public async Task RemoveProject_RemovesProject_AndUpdatesBuildsPerConnection_AndSendFeedbackMessageToClient() { string username = _fixture.Create <string>(); string connectionId = _fixture.Create <string>(); A.CallTo(() => _principal.Identity.Name).Returns(username); A.CallTo(() => _context.ConnectionId).Returns(connectionId); A.CallTo(() => _context.User).Returns(_principal); Project project = _fixture.Create <Project>(); A.CallTo(() => _commandProcessor.RemoveProject(project.Id)) .Returns(project); A.CallTo(() => _fakeClients.Client(connectionId)).Returns(_fakeClient); CiDashboardHub hub = new CiDashboardHub(_connectionsManager, _commandProcessor, _infoQuery, _refreshInfo) { Context = _context }; hub.Clients = _fakeClients; await hub.RemoveProject(project.Id); A.CallTo(() => _commandProcessor.RemoveProject(project.Id)) .MustHaveHappened(); foreach (BuildConfig buildConfig in project.Builds) { A.CallTo(() => _connectionsManager.RemoveBuildConfig(connectionId, buildConfig)) .MustHaveHappened(); } A.CallTo(() => _fakeClient.SendMessage( A <FeedbackMessage> .That.Matches(p => p.Status == "Success" && p.Message == "Project removed"))) .MustHaveHappened(); }