コード例 #1
0
        // Inherited Roles

        // Defined Associations

        // Inherited Associations

        internal MetaCachable(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("B17AFC19-9E91-4631-B6D8-43B32A65E0A0"))
            {
                SingularName = "Cachable",
            };
        }
コード例 #2
0
        // Defined Associations

        // Inherited Associations

        internal MetaTransitionalVersion(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("A13C9057-8786-40CA-8421-476E55787D73"))
            {
                SingularName = "TransitionalVersion",
            };
        }
コード例 #3
0
        // Inherited Associations

        internal MetaUser(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("a0309c3b-6f80-4777-983e-6e69800df5be"))
            {
                SingularName = "User",
            };
        }
コード例 #4
0
 internal MetaTask(MetaPopulation metaPopulation)
 {
     this.Interface = new Interface(metaPopulation, new System.Guid("84eb0e6e-68e1-478c-a35f-6036d45792be"))
     {
         SingularName = "Task",
     };
 }
コード例 #5
0
        // Defined Associations

        // Inherited Associations

        internal MetaTransitional(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("ab2179ad-9eac-4b61-8d84-81cd777c4926"))
            {
                SingularName = "Transitional",
            };
        }
コード例 #6
0
ファイル: InheritanceTest.cs プロジェクト: whesius/allors
        public void Validate()
        {
            var metaPopulation = new MetaPopulation();
            var domain = new Domain(metaPopulation, Guid.NewGuid()) { Name = "Domain" };

            var c1 = new ClassBuilder(domain, Guid.NewGuid()).WithSingularName("C1").WithPluralName("C1s").Build();

            var i1 = new InterfaceBuilder(domain, Guid.NewGuid()).WithSingularName("I1").WithPluralName("I1s").Build();
            var i2 = new InterfaceBuilder(domain, Guid.NewGuid()).WithSingularName("I2").WithPluralName("I2s").Build();

            Assert.IsTrue(metaPopulation.IsValid);

            // class with interface
            new InheritanceBuilder(domain, Guid.NewGuid()).WithSubtype(c1).WithSupertype(i1).Build();

            var validation = metaPopulation.Validate();
            Assert.IsFalse(validation.ContainsErrors);

            // interface with interface
            new InheritanceBuilder(domain, Guid.NewGuid()).WithSubtype(i1).WithSupertype(i2).Build();

            validation = metaPopulation.Validate();
            Assert.IsFalse(validation.ContainsErrors);

            // Cyclic
            var cycle = new InheritanceBuilder(domain, Guid.NewGuid()).WithSubtype(i2).WithSupertype(i1).Build();

            validation = metaPopulation.Validate();
            Assert.IsTrue(validation.ContainsErrors);
            Assert.AreEqual(i1, validation.Errors[0].Source);
            Assert.AreEqual(1, validation.Errors[0].Members.Length);
            Assert.AreEqual("IComposite.Supertypes", validation.Errors[0].Members[0]);
            Assert.AreEqual(ValidationKind.Cyclic, validation.Errors[0].Kind);
        }
コード例 #7
0
 internal MetaObjectState(MetaPopulation metaPopulation)
 {
     this.Interface = new Interface(metaPopulation, new System.Guid("f991813f-3146-4431-96d0-554aa2186887"))
     {
         SingularName = "ObjectState",
     };
 }
コード例 #8
0
        // Inherited Roles

        // Defined Associations

        // Inherited Associations

        internal MetaAccessControlledObject(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("eb0ff756-3e3d-4cf9-8935-8802a73d2df2"))
            {
                SingularName = "AccessControlledObject",
            };
        }
コード例 #9
0
        // Defined Associations

        // Inherited Associations

        internal MetaDelegatedAccessControlledObject(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("842FA7B5-2668-43E9-BFEF-21B6F5B20E8B"))
            {
                SingularName = "DelegatedAccessControlledObject",
            };
        }
コード例 #10
0
        // Inherited Methods

        // Defined Roles

        // Inherited Roles

        // Defined Associations

        // Inherited Associations

        internal MetaObject(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("12504f04-02c6-4778-98fe-04eba12ef8b2"))
            {
                SingularName = "Object",
            };
        }
コード例 #11
0
        // Inherited Roles

        // Defined Associations

        // Inherited Associations

        internal MetaLocalised(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("7979a17c-0829-46df-a0d4-1b01775cfaac"))
            {
                SingularName = "Localised",
            };
        }
コード例 #12
0
        // Inherited Roles

        // Defined Associations

        // Inherited Associations

        internal MetaPrintable(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("61207a42-3199-4249-baa4-9dd11dc0f5b1"))
            {
                SingularName = "Printable",
            };
        }
コード例 #13
0
        // Defined Methods

        // Inherited Methods

        // Defined Roles

        // Inherited Roles

        // Defined Associations

        // Inherited Associations

        internal MetaVersioned(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("39F9CB84-B321-424A-864C-0B128ACAA965"))
            {
                SingularName = "Versioned",
            };
        }
コード例 #14
0
        // Defined Associations

        // Inherited Associations

        internal MetaVersion(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("A6A3C79E-150B-4586-96EA-5AC0E2E638C6"))
            {
                SingularName = "Version",
            };
        }
コード例 #15
0
        // Inherited Associations

        internal MetaWorkItem(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("fbea29c6-6109-4163-a088-9f0b4deac896"))
            {
                SingularName = "WorkItem",
            };
        }
コード例 #16
0
        // Inherited Roles

        // Defined Associations

        // Inherited Associations

        internal MetaSecurityTokenOwner(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("a69cad9c-c2f1-463f-9af1-873ce65aeea6"))
            {
                SingularName = "SecurityTokenOwner",
            };
        }
コード例 #17
0
        // Inherited Methods

        // Defined Roles

        // Inherited Roles

        // Defined Associations

        // Inherited Associations

        internal MetaDeletable(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("9279e337-c658-4086-946d-03c75cdb1ad3"))
            {
                SingularName = "Deletable",
            };
        }
コード例 #18
0
        public void ValidateDuplicateReverseRelationAndType()
        {
            var metaPopulation = new MetaPopulation();
            var domain         = new Domain(metaPopulation, Guid.NewGuid())
            {
                Name = "Domain"
            };

            var c1 = new ClassBuilder(domain, Guid.NewGuid()).WithSingularName("C1").WithPluralName("C1s").Build();
            var c2 = new ClassBuilder(domain, Guid.NewGuid()).WithSingularName("C2").WithPluralName("C2s").Build();

            var relationType = new RelationTypeBuilder(domain, Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()).Build();

            relationType.AssociationType.ObjectType    = c1;
            relationType.RoleType.ObjectType           = c2;
            relationType.RoleType.AssignedSingularName = "bb";
            relationType.RoleType.AssignedPluralName   = "bbs";

            Assert.IsTrue(metaPopulation.IsValid);

            var c1bb = new ClassBuilder(domain, Guid.NewGuid()).WithSingularName("bbC1").WithPluralName("YYY").Build();

            Assert.IsFalse(metaPopulation.IsValid);

            c1bb.SingularName = "XXX";

            Assert.IsTrue(metaPopulation.IsValid);

            c1bb.PluralName = "bbsC1";
        }
コード例 #19
0
        public void Create()
        {
            var metaPopulation = new MetaPopulation();
            var domain         = new Domain(metaPopulation, Guid.NewGuid())
            {
                Name = "Domain"
            };

            var validationReport = this.MetaPopulation.Validate();

            Assert.IsFalse(validationReport.ContainsErrors);

            Assert.AreEqual(1, metaPopulation.Domains.Count());

            Assert.AreEqual(0, domain.DirectSuperdomains.Count());

            var superdomain = new Domain(metaPopulation, Guid.NewGuid())
            {
                Name = "Superdomain"
            };

            Assert.AreEqual(2, metaPopulation.Domains.Count());

            domain.AddDirectSuperdomain(superdomain);

            Assert.AreEqual(2, metaPopulation.Domains.Count());

            Assert.AreEqual(1, domain.DirectSuperdomains.Count());

            Assert.AreEqual(0, superdomain.DirectSuperdomains.Count());
        }
コード例 #20
0
        public void SuperDomains()
        {
            var metaPopulation = new MetaPopulation();
            var domain         = new Domain(metaPopulation, Guid.NewGuid())
            {
                Name = "Domain"
            };

            Assert.AreEqual(0, domain.Superdomains.Count());

            var superdomain = new Domain(metaPopulation, Guid.NewGuid())
            {
                Name = "Superdomain"
            };

            domain.AddDirectSuperdomain(superdomain);

            Assert.AreEqual(1, domain.Superdomains.Count());
            Assert.Contains(superdomain, domain.Superdomains.ToList());
            Assert.AreEqual(0, superdomain.Superdomains.Count());

            var supersuperdomain = new Domain(metaPopulation, Guid.NewGuid())
            {
                Name = "Supersuperdomain"
            };

            superdomain.AddDirectSuperdomain(supersuperdomain);

            Assert.AreEqual(2, domain.Superdomains.Count());
            Assert.Contains(superdomain, domain.Superdomains.ToList());
            Assert.Contains(supersuperdomain, domain.Superdomains.ToList());
            Assert.AreEqual(1, superdomain.Superdomains.Count());
            Assert.Contains(supersuperdomain, superdomain.Superdomains.ToList());
            Assert.AreEqual(0, supersuperdomain.Superdomains.Count());
        }
コード例 #21
0
ファイル: domains.g.cs プロジェクト: whesius/ZonFinancials
 internal MetaCore(MetaPopulation metaPopulation)
 {
     this.Domain = new Domain(metaPopulation, new System.Guid("fc9bad0e-d70d-4f93-bca7-0c7944ef1abb"))
     {
         Name = "Core"
     };
 }
コード例 #22
0
ファイル: DomainTest.cs プロジェクト: whesius/allors
        public void CircularSuperDomains()
        {
            var metaPopulation = new MetaPopulation();
            var domain = new Domain(metaPopulation, Guid.NewGuid()) { Name = "Domain" };

            var superdomain = new Domain(metaPopulation, Guid.NewGuid()) { Name = "Superdomain" };
            domain.AddDirectSuperdomain(superdomain);

            var exceptionThrown = false;
            try
            {
                superdomain.AddDirectSuperdomain(domain);
            }
            catch
            {
                exceptionThrown = true;
            }

            Assert.AreEqual(true, exceptionThrown);

            exceptionThrown = false;
            try
            {
                domain.AddDirectSuperdomain(domain);
            }
            catch
            {
                exceptionThrown = true;
            }

            Assert.AreEqual(true, exceptionThrown);
        }
コード例 #23
0
ファイル: domains.g.cs プロジェクト: whesius/ZonFinancials
 internal MetaBase(MetaPopulation metaPopulation)
 {
     this.Domain = new Domain(metaPopulation, new System.Guid("770538dd-7b19-4694-bdce-cf04dcf9cf62"))
     {
         Name = "Base"
     };
 }
コード例 #24
0
ファイル: MetaPopulationTest.cs プロジェクト: whesius/allors
        public void Composites()
        {
            var metaPopulation = new MetaPopulation();
            var domain = new Domain(metaPopulation, Guid.NewGuid());
            var superdomain = new Domain(metaPopulation, Guid.NewGuid());
            domain.AddDirectSuperdomain(superdomain);

            Assert.AreEqual(0, metaPopulation.Composites.Count());

            var @class = new ClassBuilder(domain, Guid.NewGuid()).WithSingularName("Class").WithPluralName("Classes").Build();

            Assert.AreEqual(1, metaPopulation.Composites.Count());

            var superclass = new ClassBuilder(superdomain, Guid.NewGuid()).WithSingularName("Superclass").WithPluralName("Superclasses").Build();

            Assert.AreEqual(2, metaPopulation.Composites.Count());

            var @interface = new InterfaceBuilder(domain, Guid.NewGuid()).WithSingularName("i1").WithPluralName("i1s").Build();

            Assert.AreEqual(3, metaPopulation.Composites.Count());

            var superinterface = new InterfaceBuilder(superdomain, Guid.NewGuid()).WithSingularName("i2").WithPluralName("i2s").Build();

            Assert.AreEqual(4, metaPopulation.Composites.Count());

            var unit = new UnitBuilder(domain, UnitIds.StringId).WithSingularName("AllorsString").WithPluralName("AllorsStrings").WithUnitTag(UnitTags.AllorsString).Build();

            Assert.AreEqual(4, metaPopulation.Composites.Count());

            var superunit = new UnitBuilder(domain, UnitIds.IntegerId).WithSingularName("AllorsInteger").WithPluralName("AllorsIntegers").WithUnitTag(UnitTags.AllorsString).Build();

            Assert.AreEqual(4, metaPopulation.Composites.Count());
        }
コード例 #25
0
ファイル: domains.g.cs プロジェクト: whesius/ZonFinancials
 internal MetaCustom(MetaPopulation metaPopulation)
 {
     this.Domain = new Domain(metaPopulation, new System.Guid("af96e2b7-3bb5-4cd1-b02c-39a67c99a11a"))
     {
         Name = "Custom"
     };
 }
コード例 #26
0
        public void Units()
        {
            var metaPopulation = new MetaPopulation();
            var domain         = new Domain(metaPopulation, Guid.NewGuid());
            var superdomain    = new Domain(metaPopulation, Guid.NewGuid());

            domain.AddDirectSuperdomain(superdomain);

            Assert.AreEqual(0, metaPopulation.Units.Count());

            var unit = new UnitBuilder(domain, UnitIds.StringId).WithSingularName("AllorsString").WithPluralName("AllorsStrings").WithUnitTag(UnitTags.AllorsString).Build();

            Assert.AreEqual(1, metaPopulation.Units.Count());

            var superunit = new UnitBuilder(domain, UnitIds.IntegerId).WithSingularName("AllorsInteger").WithPluralName("AllorsIntegers").WithUnitTag(UnitTags.AllorsInteger).Build();

            Assert.AreEqual(2, metaPopulation.Units.Count());

            var @class = new ClassBuilder(domain, Guid.NewGuid()).WithSingularName("Class").WithPluralName("Classes").Build();

            Assert.AreEqual(2, metaPopulation.Units.Count());

            var superclass = new ClassBuilder(superdomain, Guid.NewGuid()).WithSingularName("Superclass").WithPluralName("Superclasses").Build();

            Assert.AreEqual(2, metaPopulation.Units.Count());

            var @interface = new InterfaceBuilder(domain, Guid.NewGuid()).WithSingularName("i1").WithPluralName("i1s").Build();

            Assert.AreEqual(2, metaPopulation.Units.Count());

            var superinterface = new InterfaceBuilder(superdomain, Guid.NewGuid()).WithSingularName("i2").WithPluralName("i2s").Build();

            Assert.AreEqual(2, metaPopulation.Units.Count());
        }
コード例 #27
0
        // Inherited Associations

        internal MetaUniquelyIdentifiable(MetaPopulation metaPopulation)
        {
            this.Interface = new Interface(metaPopulation, new System.Guid("122ccfe1-f902-44c1-9d6c-6f6a0afa9469"))
            {
                SingularName = "UniquelyIdentifiable",
            };
        }
コード例 #28
0
        public void MethodTypes()
        {
            var metaPopulation = new MetaPopulation();
            var domain         = new Domain(metaPopulation, Guid.NewGuid());
            var superdomain    = new Domain(metaPopulation, Guid.NewGuid());

            domain.AddDirectSuperdomain(superdomain);

            var c1 = new ClassBuilder(domain, Guid.NewGuid()).WithSingularName("c1").WithPluralName("c1s").Build();
            var c2 = new ClassBuilder(superdomain, Guid.NewGuid()).WithSingularName("c2").WithPluralName("c2s").Build();

            var i1 = new InterfaceBuilder(domain, Guid.NewGuid()).WithSingularName("i1").WithPluralName("i1s").Build();
            var i2 = new InterfaceBuilder(superdomain, Guid.NewGuid()).WithSingularName("i2").WithPluralName("i2s").Build();

            Assert.AreEqual(0, metaPopulation.MethodTypes.Count());

            new MethodTypeBuilder(domain, Guid.NewGuid()).WithName("Method1").Build();

            Assert.AreEqual(1, metaPopulation.MethodTypes.Count());

            new MethodTypeBuilder(superdomain, Guid.NewGuid()).WithName("Method2").Build();

            Assert.AreEqual(2, metaPopulation.MethodTypes.Count());

            new RelationTypeBuilder(domain, Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()).WithObjectTypes(c1, i1).Build();

            Assert.AreEqual(2, metaPopulation.MethodTypes.Count());

            new RelationTypeBuilder(superdomain, Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()).WithObjectTypes(c2, i2).Build();

            Assert.AreEqual(2, metaPopulation.MethodTypes.Count());
        }
コード例 #29
0
 internal MetaEnumeration(MetaPopulation metaPopulation)
 {
     this.Interface = new Interface(metaPopulation, new System.Guid("b7bcc22f-03f0-46fd-b738-4e035921d445"))
     {
         SingularName = "Enumeration",
     };
 }
コード例 #30
0
        // Inherited Associations


        internal MetaAccessControl(MetaPopulation metaPopulation)
        {
            this.Class = new Class(metaPopulation, new System.Guid("c4d93d5e-34c3-4731-9d37-47a8e801d9a8"))
            {
                SingularName = "AccessControl",
                PluralName   = "AccessControls",
            };
        }
コード例 #31
0
        // Inherited Roles

        // Defined Associations

        // Inherited Associations


        internal MetaLogin(MetaPopulation metaPopulation)
        {
            this.Class = new Class(metaPopulation, new System.Guid("ad7277a8-eda4-4128-a990-b47fe43d120a"))
            {
                SingularName = "Login",
                PluralName   = "Logins",
            };
        }
コード例 #32
0
        // Inherited Associations


        internal MetaPermission(MetaPopulation metaPopulation)
        {
            this.Class = new Class(metaPopulation, new System.Guid("7fded183-3337-4196-afb0-3266377944bc"))
            {
                SingularName = "Permission",
                PluralName   = "Permissions",
            };
        }
コード例 #33
0
        // Inherited Associations


        internal MetaLocalisedText(MetaPopulation metaPopulation)
        {
            this.Class = new Class(metaPopulation, new System.Guid("020f5d4d-4a59-4d7b-865a-d72fc70e4d97"))
            {
                SingularName = "LocalisedText",
                PluralName   = "LocalisedTexts",
            };
        }
コード例 #34
0
ファイル: DomainTest.cs プロジェクト: whesius/allors
        public void Create()
        {
            var metaPopulation = new MetaPopulation();
            var domain = new Domain(metaPopulation, Guid.NewGuid()) { Name = "Domain" };

            var validationReport = this.MetaPopulation.Validate();
            Assert.IsFalse(validationReport.ContainsErrors);

            Assert.AreEqual(1, metaPopulation.Domains.Count());

            Assert.AreEqual(0, domain.DirectSuperdomains.Count());

            var superdomain = new Domain(metaPopulation, Guid.NewGuid()) { Name = "Superdomain" };

            Assert.AreEqual(2, metaPopulation.Domains.Count());

            domain.AddDirectSuperdomain(superdomain);

            Assert.AreEqual(2, metaPopulation.Domains.Count());

            Assert.AreEqual(1, domain.DirectSuperdomains.Count());

            Assert.AreEqual(0, superdomain.DirectSuperdomains.Count());
        }
コード例 #35
0
ファイル: MetaPopulationTest.cs プロジェクト: whesius/allors
        public void Find()
        {
            var metapopulation = new MetaPopulation();

            var domain = new Domain(metapopulation, Guid.NewGuid());
            var superdomain = new Domain(metapopulation, Guid.NewGuid());
            domain.AddDirectSuperdomain(superdomain);

            var unitId = UnitIds.StringId;
            var interfaceId = Guid.NewGuid();
            var classId = Guid.NewGuid();
            var inheritanceId = Guid.NewGuid();
            var relationTypeId = Guid.NewGuid();
            var associationTypeId = Guid.NewGuid();
            var roleTypeId = Guid.NewGuid();

            var superunitId = UnitIds.IntegerId;
            var superinterfaceId = Guid.NewGuid();
            var superclassId = Guid.NewGuid();
            var superinheritanceId = Guid.NewGuid();
            var superrelationTypeId = Guid.NewGuid();
            var superassociationTypeId = Guid.NewGuid();
            var superroleTypeId = Guid.NewGuid();

            Assert.IsNull(metapopulation.Find(unitId));
            Assert.IsNull(metapopulation.Find(interfaceId));
            Assert.IsNull(metapopulation.Find(classId));
            Assert.IsNull(metapopulation.Find(inheritanceId));
            Assert.IsNull(metapopulation.Find(relationTypeId));
            Assert.IsNull(metapopulation.Find(associationTypeId));
            Assert.IsNull(metapopulation.Find(roleTypeId));

            Assert.IsNull(metapopulation.Find(superunitId));
            Assert.IsNull(metapopulation.Find(superinterfaceId));
            Assert.IsNull(metapopulation.Find(superclassId));
            Assert.IsNull(metapopulation.Find(superinheritanceId));
            Assert.IsNull(metapopulation.Find(superrelationTypeId));
            Assert.IsNull(metapopulation.Find(superassociationTypeId));
            Assert.IsNull(metapopulation.Find(superroleTypeId));

            new UnitBuilder(domain, unitId).WithSingularName("AllorsString").WithPluralName("AllorsStrings").WithUnitTag(UnitTags.AllorsString).Build();

            Assert.IsNotNull(metapopulation.Find(unitId) as Unit);
            Assert.IsNull(metapopulation.Find(interfaceId));
            Assert.IsNull(metapopulation.Find(classId));
            Assert.IsNull(metapopulation.Find(inheritanceId));
            Assert.IsNull(metapopulation.Find(relationTypeId));
            Assert.IsNull(metapopulation.Find(associationTypeId));
            Assert.IsNull(metapopulation.Find(roleTypeId));

            Assert.IsNull(metapopulation.Find(superunitId));
            Assert.IsNull(metapopulation.Find(superinterfaceId));
            Assert.IsNull(metapopulation.Find(superclassId));
            Assert.IsNull(metapopulation.Find(superinheritanceId));
            Assert.IsNull(metapopulation.Find(superrelationTypeId));
            Assert.IsNull(metapopulation.Find(superassociationTypeId));
            Assert.IsNull(metapopulation.Find(superroleTypeId));

            var @interface = new InterfaceBuilder(domain, interfaceId).WithSingularName("Interface").WithPluralName("Interfaces").Build();

            Assert.IsNotNull(metapopulation.Find(unitId) as Unit);
            Assert.IsNotNull(metapopulation.Find(interfaceId) as Interface);
            Assert.IsNull(metapopulation.Find(classId));
            Assert.IsNull(metapopulation.Find(inheritanceId));
            Assert.IsNull(metapopulation.Find(relationTypeId));
            Assert.IsNull(metapopulation.Find(associationTypeId));
            Assert.IsNull(metapopulation.Find(roleTypeId));

            Assert.IsNull(metapopulation.Find(superunitId));
            Assert.IsNull(metapopulation.Find(superinterfaceId));
            Assert.IsNull(metapopulation.Find(superclassId));
            Assert.IsNull(metapopulation.Find(superinheritanceId));
            Assert.IsNull(metapopulation.Find(superrelationTypeId));
            Assert.IsNull(metapopulation.Find(superassociationTypeId));
            Assert.IsNull(metapopulation.Find(superroleTypeId));

            var @class = new ClassBuilder(domain, classId).WithSingularName("Class").WithPluralName("Classes").Build();

            Assert.IsNotNull(metapopulation.Find(unitId) as Unit);
            Assert.IsNotNull(metapopulation.Find(interfaceId) as Interface);
            Assert.IsNotNull(metapopulation.Find(classId) as Class);
            Assert.IsNull(metapopulation.Find(inheritanceId));
            Assert.IsNull(metapopulation.Find(relationTypeId));
            Assert.IsNull(metapopulation.Find(associationTypeId));
            Assert.IsNull(metapopulation.Find(roleTypeId));

            Assert.IsNull(metapopulation.Find(superunitId));
            Assert.IsNull(metapopulation.Find(superinterfaceId));
            Assert.IsNull(metapopulation.Find(superclassId));
            Assert.IsNull(metapopulation.Find(superinheritanceId));
            Assert.IsNull(metapopulation.Find(superrelationTypeId));
            Assert.IsNull(metapopulation.Find(superassociationTypeId));
            Assert.IsNull(metapopulation.Find(superroleTypeId));

            new InheritanceBuilder(domain, inheritanceId).WithSubtype(@class).WithSupertype(@interface).Build();

            Assert.IsNotNull(metapopulation.Find(unitId) as Unit);
            Assert.IsNotNull(metapopulation.Find(interfaceId) as Interface);
            Assert.IsNotNull(metapopulation.Find(classId) as Class);
            Assert.IsNotNull(metapopulation.Find(inheritanceId) as Inheritance);
            Assert.IsNull(metapopulation.Find(relationTypeId));
            Assert.IsNull(metapopulation.Find(associationTypeId));
            Assert.IsNull(metapopulation.Find(roleTypeId));

            Assert.IsNull(metapopulation.Find(superunitId));
            Assert.IsNull(metapopulation.Find(superinterfaceId));
            Assert.IsNull(metapopulation.Find(superclassId));
            Assert.IsNull(metapopulation.Find(superinheritanceId));
            Assert.IsNull(metapopulation.Find(superrelationTypeId));
            Assert.IsNull(metapopulation.Find(superassociationTypeId));
            Assert.IsNull(metapopulation.Find(superroleTypeId));

            new RelationTypeBuilder(domain, relationTypeId, associationTypeId, roleTypeId).WithObjectTypes(@class, @interface).Build();

            Assert.IsNotNull(metapopulation.Find(unitId) as Unit);
            Assert.IsNotNull(metapopulation.Find(interfaceId) as Interface);
            Assert.IsNotNull(metapopulation.Find(classId) as Class);
            Assert.IsNotNull(metapopulation.Find(inheritanceId) as Inheritance);
            Assert.IsNotNull(metapopulation.Find(relationTypeId) as RelationType);
            Assert.IsNotNull(metapopulation.Find(associationTypeId) as AssociationType);
            Assert.IsNotNull(metapopulation.Find(roleTypeId) as RoleType);

            Assert.IsNull(metapopulation.Find(superunitId));
            Assert.IsNull(metapopulation.Find(superinterfaceId));
            Assert.IsNull(metapopulation.Find(superclassId));
            Assert.IsNull(metapopulation.Find(superinheritanceId));
            Assert.IsNull(metapopulation.Find(superrelationTypeId));
            Assert.IsNull(metapopulation.Find(superassociationTypeId));
            Assert.IsNull(metapopulation.Find(superroleTypeId));

            new UnitBuilder(superdomain, superunitId).WithSingularName("AllorsInteger").WithPluralName("AllorsIntegers").WithUnitTag(UnitTags.AllorsInteger).Build();

            Assert.IsNotNull(metapopulation.Find(unitId) as Unit);
            Assert.IsNotNull(metapopulation.Find(interfaceId) as Interface);
            Assert.IsNotNull(metapopulation.Find(classId) as Class);
            Assert.IsNotNull(metapopulation.Find(inheritanceId) as Inheritance);
            Assert.IsNotNull(metapopulation.Find(relationTypeId) as RelationType);
            Assert.IsNotNull(metapopulation.Find(associationTypeId) as AssociationType);
            Assert.IsNotNull(metapopulation.Find(roleTypeId) as RoleType);

            Assert.IsNotNull(metapopulation.Find(superunitId) as Unit);
            Assert.IsNull(metapopulation.Find(superinterfaceId));
            Assert.IsNull(metapopulation.Find(superclassId));
            Assert.IsNull(metapopulation.Find(superinheritanceId));
            Assert.IsNull(metapopulation.Find(superrelationTypeId));
            Assert.IsNull(metapopulation.Find(superassociationTypeId));
            Assert.IsNull(metapopulation.Find(superroleTypeId));

            var @superinterface = new InterfaceBuilder(superdomain, superinterfaceId).WithSingularName("SuperInterface").WithPluralName("SuperInterfaces").Build();

            Assert.IsNotNull(metapopulation.Find(unitId) as Unit);
            Assert.IsNotNull(metapopulation.Find(interfaceId) as Interface);
            Assert.IsNotNull(metapopulation.Find(classId) as Class);
            Assert.IsNotNull(metapopulation.Find(inheritanceId) as Inheritance);
            Assert.IsNotNull(metapopulation.Find(relationTypeId) as RelationType);
            Assert.IsNotNull(metapopulation.Find(associationTypeId) as AssociationType);
            Assert.IsNotNull(metapopulation.Find(roleTypeId) as RoleType);

            Assert.IsNotNull(metapopulation.Find(superunitId) as Unit);
            Assert.IsNotNull(metapopulation.Find(superinterfaceId) as Interface);
            Assert.IsNull(metapopulation.Find(superclassId));
            Assert.IsNull(metapopulation.Find(superinheritanceId));
            Assert.IsNull(metapopulation.Find(superrelationTypeId));
            Assert.IsNull(metapopulation.Find(superassociationTypeId));
            Assert.IsNull(metapopulation.Find(superroleTypeId));

            var @superclass = new ClassBuilder(superdomain, superclassId).WithSingularName("SuperClass").WithPluralName("SuperClasses").Build();

            Assert.IsNotNull(metapopulation.Find(unitId) as Unit);
            Assert.IsNotNull(metapopulation.Find(interfaceId) as Interface);
            Assert.IsNotNull(metapopulation.Find(classId) as Class);
            Assert.IsNotNull(metapopulation.Find(inheritanceId) as Inheritance);
            Assert.IsNotNull(metapopulation.Find(relationTypeId) as RelationType);
            Assert.IsNotNull(metapopulation.Find(associationTypeId) as AssociationType);
            Assert.IsNotNull(metapopulation.Find(roleTypeId) as RoleType);

            Assert.IsNotNull(metapopulation.Find(superunitId) as Unit);
            Assert.IsNotNull(metapopulation.Find(superinterfaceId) as Interface);
            Assert.IsNotNull(metapopulation.Find(superclassId) as Class);
            Assert.IsNull(metapopulation.Find(superinheritanceId));
            Assert.IsNull(metapopulation.Find(superrelationTypeId));
            Assert.IsNull(metapopulation.Find(superassociationTypeId));
            Assert.IsNull(metapopulation.Find(superroleTypeId));

            new InheritanceBuilder(superdomain, superinheritanceId).WithSubtype(@superclass).WithSupertype(@superinterface).Build();

            Assert.IsNotNull(metapopulation.Find(unitId) as Unit);
            Assert.IsNotNull(metapopulation.Find(interfaceId) as Interface);
            Assert.IsNotNull(metapopulation.Find(classId) as Class);
            Assert.IsNotNull(metapopulation.Find(inheritanceId) as Inheritance);
            Assert.IsNotNull(metapopulation.Find(relationTypeId) as RelationType);
            Assert.IsNotNull(metapopulation.Find(associationTypeId) as AssociationType);
            Assert.IsNotNull(metapopulation.Find(roleTypeId) as RoleType);

            Assert.IsNotNull(metapopulation.Find(superunitId) as Unit);
            Assert.IsNotNull(metapopulation.Find(superinterfaceId) as Interface);
            Assert.IsNotNull(metapopulation.Find(superclassId) as Class);
            Assert.IsNotNull(metapopulation.Find(superinheritanceId) as Inheritance);
            Assert.IsNull(metapopulation.Find(superrelationTypeId));
            Assert.IsNull(metapopulation.Find(superassociationTypeId));
            Assert.IsNull(metapopulation.Find(superroleTypeId));

            new RelationTypeBuilder(superdomain, superrelationTypeId, superassociationTypeId, superroleTypeId).WithObjectTypes(@superclass, @superinterface).Build();

            Assert.IsNotNull(metapopulation.Find(unitId) as Unit);
            Assert.IsNotNull(metapopulation.Find(interfaceId) as Interface);
            Assert.IsNotNull(metapopulation.Find(classId) as Class);
            Assert.IsNotNull(metapopulation.Find(inheritanceId) as Inheritance);
            Assert.IsNotNull(metapopulation.Find(relationTypeId) as RelationType);
            Assert.IsNotNull(metapopulation.Find(associationTypeId) as AssociationType);
            Assert.IsNotNull(metapopulation.Find(roleTypeId) as RoleType);

            Assert.IsNotNull(metapopulation.Find(superunitId) as Unit);
            Assert.IsNotNull(metapopulation.Find(superinterfaceId) as Interface);
            Assert.IsNotNull(metapopulation.Find(superclassId) as Class);
            Assert.IsNotNull(metapopulation.Find(superinheritanceId) as Inheritance);
            Assert.IsNotNull(metapopulation.Find(superrelationTypeId) as RelationType);
            Assert.IsNotNull(metapopulation.Find(superassociationTypeId) as AssociationType);
            Assert.IsNotNull(metapopulation.Find(superroleTypeId) as RoleType);
        }
コード例 #36
0
ファイル: MetaPopulationTest.cs プロジェクト: whesius/allors
        public void Superdomains()
        {
            var metaPopulation = new MetaPopulation();
            var anotherMetaPopulation = new MetaPopulation();

            Assert.AreEqual(0, metaPopulation.Domains.Count());

            var domain = new Domain(metaPopulation, Guid.NewGuid());

            Assert.AreEqual(1, metaPopulation.Domains.Count());

            var superdomain = new Domain(metaPopulation, Guid.NewGuid());
            domain.AddDirectSuperdomain(superdomain);

            Assert.AreEqual(2, metaPopulation.Domains.Count());

            var anotherdomain = new Domain(anotherMetaPopulation, Guid.NewGuid());

            Assert.AreEqual(2, metaPopulation.Domains.Count());
        }
コード例 #37
0
ファイル: MetaPopulationTest.cs プロジェクト: whesius/allors
        public void ValidateDuplicateReverseRelationAndType()
        {
            var metaPopulation = new MetaPopulation();
            var domain = new Domain(metaPopulation, Guid.NewGuid()) { Name = "Domain" };

            var c1 = new ClassBuilder(domain, Guid.NewGuid()).WithSingularName("C1").WithPluralName("C1s").Build();
            var c2 = new ClassBuilder(domain, Guid.NewGuid()).WithSingularName("C2").WithPluralName("C2s").Build();

            var relationType = new RelationTypeBuilder(domain, Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()).Build();
            relationType.AssociationType.ObjectType = c1;
            relationType.RoleType.ObjectType = c2;
            relationType.RoleType.AssignedSingularName = "bb";
            relationType.RoleType.AssignedPluralName = "bbs";

            Assert.IsTrue(metaPopulation.IsValid);

            var c1bb = new ClassBuilder(domain, Guid.NewGuid()).WithSingularName("bbC1").WithPluralName("YYY").Build();

            Assert.IsFalse(metaPopulation.IsValid);

            c1bb.SingularName = "XXX";

            Assert.IsTrue(metaPopulation.IsValid);

            c1bb.PluralName = "bbsC1";
        }
コード例 #38
0
ファイル: MetaPopulationTest.cs プロジェクト: whesius/allors
        public void RelationTypes()
        {
            var metaPopulation = new MetaPopulation();
            var domain = new Domain(metaPopulation, Guid.NewGuid());
            var superdomain = new Domain(metaPopulation, Guid.NewGuid());
            domain.AddDirectSuperdomain(superdomain);

            var c1 = new ClassBuilder(domain, Guid.NewGuid()).WithSingularName("c1").WithPluralName("c1s").Build();
            var c2 = new ClassBuilder(superdomain, Guid.NewGuid()).WithSingularName("c2").WithPluralName("c2s").Build();

            var i1 = new InterfaceBuilder(domain, Guid.NewGuid()).WithSingularName("i1").WithPluralName("i1s").Build();
            var i2 = new InterfaceBuilder(superdomain, Guid.NewGuid()).WithSingularName("i2").WithPluralName("i2s").Build();

            Assert.AreEqual(0, metaPopulation.RelationTypes.Count());

            new RelationTypeBuilder(domain, Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()).WithObjectTypes(c1, i1).Build();

            Assert.AreEqual(1, metaPopulation.RelationTypes.Count());

            new RelationTypeBuilder(superdomain, Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()).WithObjectTypes(c1, i2).Build();

            Assert.AreEqual(2, metaPopulation.RelationTypes.Count());

            new RelationTypeBuilder(domain, Guid.NewGuid(), Guid.NewGuid(), Guid.NewGuid()).WithObjectTypes(c1, c2).Build();

            Assert.AreEqual(3, metaPopulation.RelationTypes.Count());

            new MethodTypeBuilder(domain, Guid.NewGuid()).WithName("Method1").Build();

            Assert.AreEqual(3, metaPopulation.RelationTypes.Count());

            new MethodTypeBuilder(superdomain, Guid.NewGuid()).WithName("Method2").Build();

            Assert.AreEqual(3, metaPopulation.RelationTypes.Count());
        }
コード例 #39
0
ファイル: CoreDomain.cs プロジェクト: whesius/allors
 internal CoreDomain(MetaPopulation metaPopulation)
     : base(metaPopulation)
 {
 }
コード例 #40
0
ファイル: DomainTest.cs プロジェクト: whesius/allors
        public void Validate()
        {
            var metaPopulation = new MetaPopulation();
            var domain = new Domain(metaPopulation, Guid.NewGuid()) { Name = "Domain" };

            var validationReport = metaPopulation.Validate();
            Assert.IsFalse(validationReport.ContainsErrors);

            domain.Name = string.Empty;

            validationReport = metaPopulation.Validate();
            Assert.IsTrue(validationReport.ContainsErrors);
            Assert.AreEqual(1, validationReport.Errors.Length);
            Assert.AreEqual(domain, validationReport.Errors[0].Source);
            Assert.AreEqual(1, validationReport.Errors[0].Members.Length);
            Assert.AreEqual("Domain.Name", validationReport.Errors[0].Members[0]);
            Assert.AreEqual(ValidationKind.Required, validationReport.Errors[0].Kind);

            domain.Name = "_";

            validationReport = metaPopulation.Validate();
            Assert.IsTrue(validationReport.ContainsErrors);
            Assert.AreEqual(1, validationReport.Errors.Length);
            Assert.AreEqual(domain, validationReport.Errors[0].Source);
            Assert.AreEqual(1, validationReport.Errors[0].Members.Length);
            Assert.AreEqual("Domain.Name", validationReport.Errors[0].Members[0]);
            Assert.AreEqual(ValidationKind.Format, validationReport.Errors[0].Kind);

            domain.Name = "a_";

            validationReport = metaPopulation.Validate();
            Assert.IsTrue(validationReport.ContainsErrors);
            Assert.AreEqual(1, validationReport.Errors.Length);
            Assert.AreEqual(domain, validationReport.Errors[0].Source);
            Assert.AreEqual(1, validationReport.Errors[0].Members.Length);
            Assert.AreEqual("Domain.Name", validationReport.Errors[0].Members[0]);
            Assert.AreEqual(ValidationKind.Format, validationReport.Errors[0].Kind);

            domain.Name = "1";

            validationReport = metaPopulation.Validate();
            Assert.IsTrue(validationReport.ContainsErrors);
            Assert.AreEqual(1, validationReport.Errors.Length);
            Assert.AreEqual(domain, validationReport.Errors[0].Source);
            Assert.AreEqual(1, validationReport.Errors[0].Members.Length);
            Assert.AreEqual("Domain.Name", validationReport.Errors[0].Members[0]);
            Assert.AreEqual(ValidationKind.Format, validationReport.Errors[0].Kind);

            domain.Name = "a1";

            validationReport = metaPopulation.Validate();
            Assert.IsFalse(validationReport.ContainsErrors);
            Assert.AreEqual(0, validationReport.Errors.Length);

            domain.Name = "a";

            validationReport = metaPopulation.Validate();
            Assert.IsFalse(validationReport.ContainsErrors);
            Assert.AreEqual(0, validationReport.Errors.Length);
        }
コード例 #41
0
ファイル: Test.cs プロジェクト: whesius/allors
 private TestDomain(MetaPopulation metaPopulation)
     : base(metaPopulation)
 {
 }
コード例 #42
0
ファイル: Custom.cs プロジェクト: Allors/demo
 private CustomDomain(MetaPopulation metaPopulation)
     : base(metaPopulation)
 {
 }
コード例 #43
0
ファイル: DomainTest.cs プロジェクト: whesius/allors
        public void SuperDomains()
        {
            var metaPopulation = new MetaPopulation();
            var domain = new Domain(metaPopulation, Guid.NewGuid()) { Name = "Domain" };

            Assert.AreEqual(0, domain.Superdomains.Count());

            var superdomain = new Domain(metaPopulation, Guid.NewGuid()) { Name = "Superdomain" };
            domain.AddDirectSuperdomain(superdomain);

            Assert.AreEqual(1, domain.Superdomains.Count());
            Assert.Contains(superdomain, domain.Superdomains.ToList());
            Assert.AreEqual(0, superdomain.Superdomains.Count());

            var supersuperdomain = new Domain(metaPopulation, Guid.NewGuid()) { Name = "Supersuperdomain" };
            superdomain.AddDirectSuperdomain(supersuperdomain);

            Assert.AreEqual(2, domain.Superdomains.Count());
            Assert.Contains(superdomain, domain.Superdomains.ToList());
            Assert.Contains(supersuperdomain, domain.Superdomains.ToList());
            Assert.AreEqual(1, superdomain.Superdomains.Count());
            Assert.Contains(supersuperdomain, superdomain.Superdomains.ToList());
            Assert.AreEqual(0, supersuperdomain.Superdomains.Count());
        }
コード例 #44
0
ファイル: Adapters.cs プロジェクト: whesius/allors
 private AdaptersDomain(MetaPopulation metaPopulation)
     : base(metaPopulation)
 {
 }