Exemplo n.º 1
0
 public static void ThrowIfUnsuccessful(this AgentQueryResultSet results, string initialMessage = null)
 {
     if (!results.Success)
     {
         var sb = new StringBuilder();
         if (!string.IsNullOrEmpty(initialMessage))
         {
             sb.AppendLine(initialMessage);
         }
         sb.Append(results.Message);
         foreach (var r in results.Results)
         {
             if (!r.Success)
             {
                 sb.AppendLine(r.Message);
             }
         }
         throw new Exception(sb.ToString());
     }
 }
        public async Task StartPerformanceDashboardAgentsAsync_Success()
        {
            // Arrange
            var agentArtifactId1 = 1;
            var agentArtifactId2 = 2;
            var agents           = new List <int> {
                agentArtifactId1, agentArtifactId2
            };

            this.agentRepositoryMock.Setup(m => m.ReadAgentsAsync(Guids.Agent.CurrentAgentGuids)).ReturnsAsync(agents);

            var enabledQueryAgentsResult =
                new AgentQueryResultSet
            {
                Success = true,
                Results =
                    new List <Result <Agent> >
                {
                    new Result <Agent> {
                        Success = true, Artifact = new Agent {
                            ArtifactID = agentArtifactId1, Enabled = true
                        }
                    },
                    new Result <Agent> {
                        Success = true, Artifact = new Agent {
                            ArtifactID = agentArtifactId2, Enabled = true
                        }
                    }
                }
            };

            var disabledQueryAgentsResult = new AgentQueryResultSet
            {
                Success = true,
                Results =
                    new List <Result <Agent> >
                {
                    new Result <Agent> {
                        Success = true, Artifact = new Agent {
                            ArtifactID = agentArtifactId1, Enabled = false
                        }
                    },
                    new Result <Agent> {
                        Success = true, Artifact = new Agent {
                            ArtifactID = agentArtifactId2, Enabled = false
                        }
                    }
                }
            };

            this.agentManagerMock.SetupSequence(m => m.QueryAsync(It.Is <Query>(q => q.Condition == new WholeNumberCondition(
                                                                                    "ArtifactID",
                                                                                    NumericConditionEnum.In,
                                                                                    agents.ToList()).ToQueryString())))
            .ReturnsAsync(disabledQueryAgentsResult)                    // First read the disabled agents
            .ReturnsAsync(enabledQueryAgentsResult)                     // After update, read the successfully on agents
            ;
            this.agentManagerMock
            .Setup(m => m.UpdateSingleAsync(It.Is <Agent>(a => a.Enabled == true)))
            .Returns(Task.Delay(1));

            // Act
            await this.agentManagerService.StartPerformanceDashboardAgentsAsync();

            // Assert
            this.agentManagerMock.VerifyAll();
            this.agentRepositoryMock.VerifyAll();
            this.agentManagerMock.Verify(m => m.UpdateSingleAsync(It.Is <Agent>(a => a.Enabled == true)),
                                         Times.Exactly(agents.Count));
        }