public void GetQueuedBuilds_WithNoCriteria_WithNoIncludes()
        {
            // Arrange
            var teamCityApiClient = A.Fake <ITeamCityApiClient>();

            A.CallTo(() => teamCityApiClient.Get <Builds>("buildQueue?locator=count:100"))
            .Returns(new Builds {
                Build = new List <BuildModel> {
                    new BuildModel()
                    {
                        Id = 1
                    }, new BuildModel()
                    {
                        Id = 2
                    }
                }
            });

            var queuedBuildService = new QueuedBuildService(teamCityApiClient);

            // Act
            var builds = queuedBuildService.Find();

            // Assert
            builds.Count.Should().Be(2);
            builds[1].Id.Should().Be(2);
        }
        public void GetQueuedBuilds_WithNoCriteria_WithIncludes()
        {
            // Arrange
            var teamCityApiClient = A.Fake <ITeamCityApiClient>();

            A.CallTo(() => teamCityApiClient.Get <Builds>("buildQueue?locator=count:100&fields=build(buildTypeId,href,id,number,state,status,webUrl,startDate)"))
            .Returns(new Builds {
                Build = new List <BuildModel> {
                    new BuildModel()
                    {
                        Id = 1
                    }, new BuildModel()
                    {
                        Id = 2
                    }
                }
            });

            var queuedBuildService = new QueuedBuildService(teamCityApiClient);

            // Act
            var builds = queuedBuildService.Find(Include.Build.Default().StartDate());

            // Assert
            builds.Count.Should().Be(2);
            builds[1].Id.Should().Be(2);
        }
        public void GetQueuedBuilds_WithProjectCriteria_NotFound()
        {
            // Arrange
            var teamCityApiClient = A.Fake <ITeamCityApiClient>();

            A.CallTo(() => teamCityApiClient.Get <Builds>("buildQueue?locator=count:100,project:(id:123)"))
            .Returns(new Builds {
                Build = new List <BuildModel>()
            });

            var queuedBuildService = new QueuedBuildService(teamCityApiClient);

            // Act
            var builds = queuedBuildService.Find(By.Project.Id("123"));

            // Assert
            builds.Count.Should().Be(0);
        }
        public void GetQueuedBuilds_WithProjectCriteria_WithNoIncludes()
        {
            // Arrange
            var teamCityApiClient = A.Fake <ITeamCityApiClient>();

            A.CallTo(() => teamCityApiClient.Get <Builds>("buildQueue?locator=count:100,project:(name:123+456)"))
            .Returns(new Builds {
                Build = new List <BuildModel> {
                    new BuildModel()
                    {
                        Id = 1
                    }
                }
            });

            var queuedBuildService = new QueuedBuildService(teamCityApiClient);

            // Act
            var builds = queuedBuildService.Find(By.Project.Name("123 456"));

            // Assert
            builds.Count.Should().Be(1);
            builds[0].Id.Should().Be(1);
        }
        public void GetQueuedBuilds_WithProjectCriteria_WithIncludes()
        {
            // Arrange
            var teamCityApiClient = A.Fake <ITeamCityApiClient>();

            A.CallTo(() => teamCityApiClient.Get <Builds>("buildQueue?locator=count:100,project:(id:123)&fields=build(buildTypeId,href,id,number,state,status,webUrl,queuedDate)"))
            .Returns(new Builds {
                Build = new List <BuildModel> {
                    new BuildModel()
                    {
                        Id = 1
                    }
                }
            });

            var queuedBuildService = new QueuedBuildService(teamCityApiClient);

            // Act
            var builds = queuedBuildService.Find(By.Project.Id("123"), Include.Build.QueuedDate());

            // Assert
            builds.Count.Should().Be(1);
            builds[0].Id.Should().Be(1);
        }