public void Name_Is_Valid_Code_Identifier(WCTestData testData, IPersistentCoreTypeMemberInfo persistentClassInfo) { persistentClassInfo.Name = "123"; Validator.RuleSet.StateOf <RuleValidCodeIdentifier>(persistentClassInfo, nameof(persistentClassInfo.Name)) .Should().Be(ValidationState.Invalid); }
public void Name_Is_Valid_File_name(WCTestData testData, IPersistentAssemblyInfo persistentAssemblyInfo) { persistentAssemblyInfo.Name = "file@"; throw new NotImplementedException(); // Validator.RuleSet.StateOf<RuleValidFileName>(persistentAssemblyInfo, nameof(persistentAssemblyInfo.Name)) // .Should().Be(ValidationState.Invalid); }
public void Non_Compilable_Code(WCTestData testData, IPersistentClassInfo persistentClassInfo) { persistentClassInfo.CodeTemplateInfo.TemplateInfo.TemplateCode = "invalid"; var result = persistentClassInfo.PersistentAssemblyInfo.Validate(AssemblyPath); result.Valid.Should().Be(false); result.Message.Should().Contain("A namespace cannot directly contain members such as fields or methods"); }
public void Missing_Key_Property(WCTestData testData, IPersistentClassInfo persistentClassInfo) { persistentClassInfo.BaseType = typeof(XPBaseObject); var result = persistentClassInfo.PersistentAssemblyInfo.Validate(AssemblyPath); result.Valid.Should().BeFalse(); result.Message.Should().Contain(typeof(KeyPropertyAbsentException).Name); }
private void Not_Well_Form_Association(WCTestData testData, IPersistentReferenceMemberInfo referenceMemberInfo, CodeValidator codeValidator) { referenceMemberInfo.CreateAssociation("invalid"); var result = referenceMemberInfo.Owner.PersistentAssemblyInfo.Validate(AssemblyPath); result.Valid.Should().Be(false); result.Message.Should().Contain("Malformed association 'invalid'"); }
public void Compile_Time_Exceptions(WCTestData testData, IPersistentCoreTypeMemberInfo memberInfo) { var persistentAssemblyInfo = memberInfo.Owner.PersistentAssemblyInfo; memberInfo.TypeAttributes.Add(new PersistentKeyAttribute(memberInfo.Session)); memberInfo.TypeAttributes.Add(new PersistentKeyAttribute(memberInfo.Session)); var result = persistentAssemblyInfo.Validate(AssemblyPath); result.Valid.Should().Be(false); result.Message.Should().Contain("Duplicate 'DevExpress.Xpo.KeyAttribute' attribute"); }
public void Validation_Failure_after_Succeful_Validation(WCTestData testData, IPersistentClassInfo persistentClassInfo) { var result = persistentClassInfo.PersistentAssemblyInfo.Validate(AssemblyPath); result.Valid.Should().BeTrue(); persistentClassInfo.BaseType = null; var assembliesLenght = AppDomain.CurrentDomain.GetAssemblies().Length; result = persistentClassInfo.PersistentAssemblyInfo.Validate(AssemblyPath); result.Valid.Should().BeFalse(); result.Message.Should().Contain("Type expected"); AppDomain.CurrentDomain.GetAssemblies().Length.Should().Be(assembliesLenght); }
public void Double_Key_Properties(WCTestData testData, IPersistentCoreTypeMemberInfo[] memberInfos) { foreach (var memberInfo in memberInfos) { memberInfo.TypeAttributes.Add(new PersistentKeyAttribute(memberInfo.Session)); } var info = memberInfos.First(); info.Owner = memberInfos.Last().Owner; var result = info.Owner.PersistentAssemblyInfo.Validate(AssemblyPath); result.Valid.Should().BeFalse(); result.Message.Should().Contain(typeof(DuplicateKeyPropertyException).Name); }
public void Successfull_Validation_After_Validation_Failure(WCTestData testData, IPersistentClassInfo persistentClassInfo) { persistentClassInfo.BaseType = null; var result = persistentClassInfo.PersistentAssemblyInfo.Validate(AssemblyPath); result.Valid.Should().BeFalse(); persistentClassInfo.BaseType = typeof(XpandBaseCustomObject); result = persistentClassInfo.PersistentAssemblyInfo.Validate(AssemblyPath); result.Valid.Should().BeTrue(); var assemblyFile = Directory.GetFiles(AssemblyPath, "*" + Compiler.XpandExtension, SearchOption.AllDirectories).First(); var fullName = AssemblyDefinition.ReadAssembly(assemblyFile).FullName; AppDomain.CurrentDomain.GetAssemblies() .Any(assembly => assembly.FullName == fullName) .Should() .BeFalse(); }
public void Compilable_Code(WCTestData testData, IPersistentClassInfo persistentClassInfo, Mock <IAssemblyValidator> assemblyValidatorMock, Mock <ICompiler> compilerMock) { assemblyValidatorMock.Setup(validator => validator.Validate(It.IsAny <string>())) .Returns(() => new ValidatorResult()); var codeValidator = testData.Fixture.Create <CodeValidator>(); var compilerResults = new Mock <ICompilerResult>(); compilerMock.Setup(compiler => compiler.Compile(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <byte[]>())) .Returns(compilerResults.Object); compilerMock.SetupGet(compiler => compiler.AssemblyPath).Returns(AssemblyPath); var persistentAssemblyInfo = persistentClassInfo.PersistentAssemblyInfo; var code = persistentAssemblyInfo.GenerateCode(); var result = codeValidator.Validate(code); result.Message.Should().BeNull(); result.Valid.Should().BeTrue(); assemblyValidatorMock.Verify(validator => validator.Validate(It.IsAny <string>())); }