Exemplo n.º 1
0
        public async Task <List <Build> > ByBuildLocatorWithFields(Action <BuildLocator> locatorConfig, Action <BuildsFields> fieldConfig)
        {
            var buildLocator = new BuildLocator();

            locatorConfig(buildLocator);

            var buildsFields = new BuildsFields();

            fieldConfig(buildsFields);

            string requestUri = string.Format("/app/rest/builds?locator={0}&fields={1}", buildLocator, buildsFields);

            var buildWrapper = await _http.Get <BuildsWrapper>(requestUri);

            if (buildWrapper == null || buildWrapper.Build == null || buildWrapper.Build.Count == 0)
            {
                throw new Exception(string.Format("Could not get build from TeamCity by locator: \"{0}\" and fields \"{1}\"", buildLocator, buildsFields));
            }

            foreach (var build in buildWrapper.Build)
            {
                build.SetBuildClient(this);
            }

            return(buildWrapper.Build);
        }
Exemplo n.º 2
0
        public void Should_create_deeply_nested_fields_string()
        {
            var buildsFields = new BuildsFields();

            buildsFields
            .WithLong()
            .WithBuildFields(b => b
                             .WithId()
                             .WithNumber()
                             .WithStatus()
                             .WithFinishDate()
                             .WithChangesFields(cs => cs
                                                .WithChangeFields(c => c
                                                                  .WithUserFields(u => u
                                                                                  .WithName()
                                                                                  )
                                                                  .WithFilesFields(fs => fs
                                                                                   .WithFileFields(f => f
                                                                                                   .WithChangeType()
                                                                                                   .WithFile())
                                                                                   )
                                                                  )
                                                )
                             );



            Assert.Equal("$long,build(id,number,status,finishDate,changes(change(user(name),files(file(changeType,file)))))", buildsFields.ToString());
        }