private IEnumerable <ITest> CreateTests( [NotNull] IEnumerable <QualitySpecificationElement> qualitySpecificationElements, [CanBeNull] IDatasetContext datasetContext, out IDictionary <ITest, QualitySpecificationElement> qualityConditionsByTest) { var result = new List <ITest>(); qualityConditionsByTest = new Dictionary <ITest, QualitySpecificationElement>(); if (datasetContext == null) { return(result); } IOpenDataset datasetOpener = _openDatasetFactory(datasetContext); foreach (QualitySpecificationElement element in qualitySpecificationElements) { QualityCondition condition = element.QualityCondition; TestFactory factory = Assert.NotNull( TestFactoryUtils.CreateTestFactory(condition), $"Cannot create test factory for condition {condition.Name}"); foreach (ITest test in factory.CreateTests(datasetOpener)) { result.Add(test); qualityConditionsByTest.Add(test, element); } } return(result); }
public IncludedTestFactory([NotNull] Type testFactoryType) : base(GetTitle(testFactoryType), GetTestFactory(testFactoryType), testFactoryType.Assembly, ReflectionUtils.IsObsolete(testFactoryType), TestFactoryUtils.IsInternallyUsed(testFactoryType)) { _testFactoryType = testFactoryType; }
public IncludedTestConstructor([NotNull] Type testType, int constructorIndex) : base(GetTitle(testType, constructorIndex), TestFactoryUtils.GetTestFactory(testType, constructorIndex), testType.Assembly, TestFactoryUtils.IsObsolete(testType, constructorIndex), TestFactoryUtils.IsInternallyUsed(testType, constructorIndex)) { _testType = testType; _constructorIndex = constructorIndex; }
public IncludedTestClass([NotNull] Type testType) : base(GetTitle(testType), testType.Assembly, ReflectionUtils.IsObsolete(testType), TestFactoryUtils.IsInternallyUsed(testType), ReflectionUtils.GetCategories(testType)) { Assert.ArgumentNotNull(testType, nameof(testType)); _testType = testType; }
internal HtmlTestDescriptor([NotNull] TestDescriptor testDescriptor) { Assert.ArgumentNotNull(testDescriptor, nameof(testDescriptor)); TestFactory testFactory = Assert.NotNull(TestFactoryUtils.GetTestFactory(testDescriptor)); Name = testDescriptor.Name; Description = StringUtils.IsNotEmpty(testDescriptor.Description) ? testDescriptor.Description : null; TestDescription = testFactory.GetTestDescription(); Signature = TestImplementationUtils.GetTestSignature(testFactory); Type testType; if (testDescriptor.TestClass != null) { testType = testDescriptor.TestClass.GetInstanceType(); ConstructorId = testDescriptor.TestConstructorId; UsesConstructor = true; IsObsolete = TestFactoryUtils.IsObsolete(testType, ConstructorId, out _obsoleteMessage); } else if (testDescriptor.TestFactoryDescriptor != null) { testType = testDescriptor.TestFactoryDescriptor.GetInstanceType(); ConstructorId = -1; UsesConstructor = false; IsObsolete = ReflectionUtils.IsObsolete(testType, out _obsoleteMessage); } else { throw new ArgumentException("Invalid test descriptor"); } AssemblyName = Path.GetFileName(testType.Assembly.Location); ClassName = testType.FullName; _issueCodes = IssueCodeUtils.GetIssueCodes(testType).ToList(); _testCategories = testFactory.TestCategories.OrderBy(c => c).ToList(); foreach (TestParameter testParameter in testFactory.Parameters) { var htmlTestParameter = new HtmlTestParameter(testParameter); _parameters.Add(htmlTestParameter); _testParametersByName.Add(testParameter.Name, htmlTestParameter); } }
private static void IncludeTestFactories([NotNull] IReportBuilder reportBuilder, [NotNull] IEnumerable <Assembly> assemblies) { const bool includeObsolete = true; const bool includeInternallyUsed = true; foreach (Assembly assembly in assemblies) { foreach (Type testFactoryType in TestFactoryUtils.GetTestFactoryClasses( assembly, includeObsolete, includeInternallyUsed)) { reportBuilder.IncludeTestFactory(testFactoryType); } } }
public void CanTestFactory() { Type type = typeof(QaMinSegAngleFactory); var testDescriptor = new TestDescriptor { TestFactoryDescriptor = new ClassDescriptor(type) }; const string fcName = "CanTestFactory"; IFeatureClass fc = CreateLineClass(_testWs, fcName); IFeature row1 = fc.CreateFeature(); row1.Shape = CurveConstruction.StartLine(0, 0, 0) .LineTo(0, 1, 0) .LineTo(0.1, 0, 0) .LineTo(0.1, 1, 100) .LineTo(0.1, 2, 100) .CircleTo(GeometryFactory.CreatePoint(0.2, 0, 100)) .Curve; row1.Store(); double limit = FormatUtils.Radians2AngleInUnits(0.1, AngleUnit.Degree); var model = new SimpleModel("model", fc); esriGeometryType esriGeometryType = fc.ShapeType; var suiteGeometryType = (ProSuiteGeometryType)esriGeometryType; ModelVectorDataset ds = model.AddDataset( new ModelVectorDataset(fcName) { GeometryType = new GeometryTypeShape(suiteGeometryType.ToString(), suiteGeometryType) }); var condition = new QualityCondition("testtest", testDescriptor); QualityConditionParameterUtils.AddParameterValue(condition, "featureClass", ds); QualityConditionParameterUtils.AddParameterValue(condition, "limit", limit); QualityConditionParameterUtils.AddParameterValue(condition, "is3D", true); TestFactory factory = TestFactoryUtils.CreateTestFactory(condition); Assert.IsNotNull(factory); IList <ITest> tests = factory.CreateTests(new SimpleDatasetOpener(model.MasterDatabaseWorkspaceContext)); Assert.AreEqual(1, tests.Count); ITest test = tests[0]; var runner = new QaContainerTestRunner(1000, test); runner.Execute(); Assert.AreEqual(2, runner.Errors.Count); }