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");
            }
        }
示例#2
0
        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();
        }