Esempio n. 1
0
        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);
        }
Esempio n. 3
0
        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");
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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'");
        }
Esempio n. 6
0
        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");
        }
Esempio n. 7
0
        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);
        }
Esempio n. 8
0
        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);
        }
Esempio n. 9
0
        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();
        }
Esempio n. 10
0
        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>()));
        }