public void EstablishAvailability_ThrowsOnCircularReferences() { var cooker0 = new TestSourceDataCookerReference { Path = new DataCookerPath("TestSourceParser", "Cooker0"), }; var cooker1 = new TestSourceDataCookerReference { Path = new DataCookerPath("TestSourceParser", "Cooker1"), }; var cooker2 = new TestSourceDataCookerReference { Path = new DataCookerPath("TestSourceParser", "Cooker2"), }; // the repository has all source cookers var testRepo = new TestDataExtensionRepository(); testRepo.sourceCookersByPath.Add(cooker0.Path, cooker0); testRepo.sourceCookersByPath.Add(cooker1.Path, cooker1); testRepo.sourceCookersByPath.Add(cooker2.Path, cooker2); // setup the requirements for the cookers cooker0.requiredDataCookers.Add(cooker1.Path); cooker1.requiredDataCookers.Add(cooker2.Path); cooker2.requiredDataCookers.Add(cooker0.Path); cooker0.ProcessDependencies(testRepo); Assert.IsTrue(cooker0.Availability == DataExtensionAvailability.Error); Assert.AreEqual(cooker0.DependencyState.Errors.Count, 1); }
public void EstablishAvailability_OneErroredDataCooker() { var cooker0 = new TestSourceDataCookerReference { Path = new DataCookerPath("TestSourceParser", "Cooker0"), }; var cooker1 = new TestSourceDataCookerReference(false) { Path = new DataCookerPath("TestSourceParser", "Cooker1"), availability = DataExtensionAvailability.Error, }; var testRepo = new TestDataExtensionRepository(); testRepo.sourceCookersByPath.Add(cooker0.Path, cooker0); testRepo.sourceCookersByPath.Add(cooker1.Path, cooker1); cooker0.requiredDataCookers.Add(new DataCookerPath(cooker1.Path)); cooker0.ProcessDependencies(testRepo); Assert.IsTrue(cooker0.Availability == DataExtensionAvailability.IndirectError); Assert.AreEqual(cooker0.DependencyState.Errors.Count, 1); Assert.AreEqual(cooker0.DependencyReferences.RequiredSourceDataCookerPaths.Count, 1); }
public void EstablishAvailability_NoDependencies() { var testRepo = new TestDataExtensionRepository(); var cooker0 = new TestSourceDataCookerReference { Path = new DataCookerPath("TestSourceParser", "Cooker0"), }; cooker0.ProcessDependencies(testRepo); Assert.IsTrue(cooker0.Availability == DataExtensionAvailability.Available); Assert.AreEqual(cooker0.DependencyState.Errors.Count, 0); Assert.AreEqual(cooker0.DependencyReferences.RequiredSourceDataCookerPaths.Count, 0); }
public void EstablishAvailability_MissingDependency() { var cooker0 = new TestSourceDataCookerReference { Path = new DataCookerPath("TestSourceParser", "Cooker0"), }; // the repository has all source cookers var testRepo = new TestDataExtensionRepository(); testRepo.sourceCookersByPath.Add(cooker0.Path, cooker0); // setup the requirements for the cookers cooker0.requiredDataCookers.Add(new DataCookerPath("TestSourceParser", "Cooker1")); cooker0.ProcessDependencies(testRepo); Assert.IsTrue(cooker0.Availability == DataExtensionAvailability.MissingRequirement); Assert.AreEqual(cooker0.DependencyState.Errors.Count, 0); Assert.AreEqual(cooker0.DependencyState.MissingDataCookers.Count, 1); Assert.AreEqual(cooker0.DependencyReferences.RequiredSourceDataCookerPaths.Count, 0); }
public void EstablishAvailability_PerformAdditionalValidationIsCalled() { var cooker0 = new TestSourceDataCookerReference { Path = new DataCookerPath("TestSourceParser0", "Cooker0"), }; var cooker1 = new TestSourceDataCookerReference { Path = new DataCookerPath("TestSourceParser1", "Cooker1"), }; var testRepo = new TestDataExtensionRepository(); testRepo.sourceCookersByPath.Add(cooker0.Path, cooker0); testRepo.sourceCookersByPath.Add(cooker1.Path, cooker1); cooker0.requiredDataCookers.Add(new DataCookerPath(cooker1.Path)); cooker0.ProcessDependencies(testRepo); Assert.IsTrue(cooker0.Availability == DataExtensionAvailability.Error); Assert.AreEqual(cooker0.DependencyState.Errors.Count, 1); }