public DataModelBuilder WithStageWorkflowFor(Release release, Stage stage)
        {
            var stageWorkflow = new StageWorkflowBuilder()
                .ForRelease(release)
                .ForStage(stage)
                .Build();

            _stageWorkflows.Add(stageWorkflow);

            return this;
        }
        internal static void AssertReleasesCollectionContainsRelease(List<dynamic> releases, Release expectedRelease)
        {
            bool releaseIsInCollection = false;
            foreach (var release in releases)
            {
                if (release.name == expectedRelease.Name)
                {
                    releaseIsInCollection = true;
                    break;
                }
            }

            Assert.IsTrue(releaseIsInCollection, "Release with name {0} could not be found", expectedRelease.Name);
        }
 internal static void AssertAreReleasesEqual(Release expectedRelease, dynamic actualRelease)
 {
     Assert.AreEqual(expectedRelease.Name, actualRelease.name, "Unexpected name for release with id {0}", expectedRelease.Id);
     Assert.AreEqual(expectedRelease.Status, actualRelease.status, "Unexpected name for release with name {0}", expectedRelease.Name);
     Assert.AreEqual(expectedRelease.CreatedOn, actualRelease.createdOn, "Unexpected createdOn for release with name {0}", expectedRelease.Name);
     Assert.AreEqual(expectedRelease.TargetStageId, actualRelease.targetStageId, "Unexpected targetStageId for release with name {0}", expectedRelease.Name);
     Assert.AreEqual(expectedRelease.ReleasePathName, actualRelease.releasePathName, "Unexpected releasePathName for release with name {0}", expectedRelease.Name);
     Assert.IsNotNull(actualRelease.stages, "Unexpected stages collection for release with name {0}", expectedRelease.Name);
     Assert.IsNotNull(actualRelease.components, "Unexpected components collection for release with name {0}", expectedRelease.Name);
 }
        private static dynamic CreateRelease(Release releaseData)
        {
            dynamic release = new ExpandoObject();
            release.name = releaseData.Name;
            release.status = releaseData.Status;
            release.createdOn = releaseData.CreatedOn;
            release.targetStageId = releaseData.TargetStageId;
            release.releasePathName = releaseData.ReleasePathName;
            release.stages = new List<dynamic>();
            release.components = new List<dynamic>();

            return release;
        }
 public DataModelBuilder WithRelease(Release release)
 {
     _releases.Add(release);
     return this;
 }