Exemplo n.º 1
0
        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
                });
            }
        }