Inheritance: IChangesHavingBuilder
        public List<Change> GetChanges(Action<IChangesHavingBuilder> having, Action<IChangesIncludeBuilder> include)
        {
            var changesHavingBuilder = new ChangesHavingBuilder(m_BuildHavingBuilderFactory);
            having(changesHavingBuilder);
            var changesIncludeBuilder = new ChangesIncludeBuilder();
            include(changesIncludeBuilder);
            var columns = changesIncludeBuilder.GetColumns();
            var locator = changesHavingBuilder.GetLocator();

            return m_TeamCityCaller.GetFormat<ChangesList>(@"/app/rest/changes?locator={0}&fields=change({1})", locator, columns).Change;
        }
        public void Build()
        {
            // Arrange
            var buildHavingBuilder = A.Fake<BuildHavingBuilder>();
            A.CallTo(() => buildHavingBuilder.GetLocator()).Returns("id:123");

            var buildHavingBuilderFactory = A.Fake<IBuildHavingBuilderFactory>();
            A.CallTo(() => buildHavingBuilderFactory.CreateBuildHavingBuilder()).Returns(buildHavingBuilder);

            var changesHavingBuilder = new ChangesHavingBuilder(buildHavingBuilderFactory);

            // Act
            changesHavingBuilder.Build(_ => _.Id(123));
            var locator = changesHavingBuilder.GetLocator();

            // Assertions
            locator.Should().Be("build:id:123");
        }