예제 #1
0
        static public EAFactory createInvalidAPI(EAMetaModel meta)
        {
            EAFactory factory = new EAFactory();

            meta.setupSchemaPackage();

            EAFactory typesForResource = factory.setupClient("item-get", APIAddinClass.EA_TYPE_OBJECT, APIAddinClass.EA_STEREOTYPE_NONE, meta.META_TYPE_FOR_RESOURCE.ElementID, null);

            //Root class has lower case name
            EAFactory rootclass = typesForResource.addSupplier("rootClass", APIAddinClass.EA_TYPE_CLASS, 0, null /*target stereotype*/, null, "requestSchema", APIAddinClass.CARDINALITY_ONE, null);

            //Invalid supplier end role
            EAFactory childClass = rootclass.addSupplier("ChildClass", APIAddinClass.EA_TYPE_CLASS, 0, null /*target stereotype*/, null, "" /*Invalid supplierEndRole is empty string*/, "0..*" /*cardinality*/, null);

            //No cardinality
            EAFactory childClass2 = childClass.addSupplier("ChildClass2", APIAddinClass.EA_TYPE_CLASS, 0, null /*target stereotype*/, null, "child", "" /*invalid no cardinality*/, null);

            meta.setupAPIPackage();

            EAFactory factoryresult = factory.setupClient("APITitle", APIAddinClass.EA_TYPE_OBJECT, APIAddinClass.EA_STEREOTYPE_SAMPLE, meta.META_API.ElementID, new string[] { APIManager.TITLE, "APITitle", "version", "1", "baseUri", "http://localhost", "mediaType", "application/json" });

            EAFactory resource = factory.addSupplier("/resource/{id}", APIAddinClass.EA_TYPE_OBJECT, meta.META_RESOURCE.ElementID, null /*target stereotype*/, new string[] { "test", "testvalue" } /*runstate*/, "resource" /*supplierEndRole*/, "" /*relationshipName*/, null);

            EAFactory schema = factory.addSupplier(rootclass.clientElement, "quoteSchema" /*supplier end role*/, "", null);

            resource.addSupplier(typesForResource.clientElement, "item-get", "", null);

            typesForResource.addSupplier("sample200Resp", APIAddinClass.EA_TYPE_OBJECT, schema.clientElement.ElementID, null /*target stereotype*/, null, "sample200Resp", "", null);

            return(factoryresult);
        }
예제 #2
0
        public void TestUpdateClassFromInstance()
        {
            DiagramCache diagramCache = new DiagramCache();
            EAMetaModel  meta         = new EAMetaModel().setupSchemaPackage();
            EAFactory    rootClass    = new EAFactory();

            rootClass.setupClient("SomeClass", RoundTripAddInClass.EA_TYPE_CLASS, RoundTripAddInClass.EA_STEREOTYPE_REQUEST, 0, null);
            EA.Element el = rootClass.clientElement;

            object o = el.Attributes.AddNew("SomeAttribute", "Attribute");

            EA.Attribute attr = (EA.Attribute)o;

            EA.Package pkg = SchemaManager.generateSample(EARepository.Repository, diagramCache);

            object os = pkg.Elements.GetAt(0);

            EA.Element sample = (EA.Element)os;

            string nrs = ObjectManager.addRunState(sample.RunState, "SomeAttribute", "foobar", 0);

            sample.RunState = nrs;

            SchemaManager.updateClassFromSample(EARepository.Repository, sample);

            Assert.AreEqual("foobar", attr.Default);
        }
예제 #3
0
        public void TestInvalidSchema()
        {
            EAMetaModel meta = new EAMetaModel();

            APIModel.createInvalidAPI(meta);
            meta.setupSchemaPackage();

            FileManager fileManager = new FileManager(null);

            SchemaManager.setFileManager(fileManager);

            string theexception = "An exception should be thrown";

            try
            {
                JSchema jschema = SchemaManager.schemaToJsonSchema(EARepository.Repository, EARepository.currentDiagram).Value;
                Assert.Fail(theexception);
            }
            catch (ModelValidationException e)
            {
                string r = "";
                foreach (string s in e.errors.messages)
                {
                    r += s;
                }
                Assert.AreNotEqual("Assert.Fail failed. " + theexception, r);

                Assert.IsTrue(r.Contains("Class Name needs to start with an uppercase character"));

                Assert.IsTrue(r.Contains("Connector with empty SupplierEnd.Role is not allowed"));

                Assert.IsTrue(r.Contains("Connector with no SupplierEnd.Role cardinality is not allowed"));
            }
        }
예제 #4
0
        public void TestGetDataItemType()
        {
            EAMetaModel meta = new EAMetaModel();
            {
                EA.Element attr = new EAElement();
                attr.Stereotype = "DataItem,string";

                string s = SchemaManager.getDataItemType(attr);
                Assert.AreEqual("string", s);
            }
            {
                EA.Element attr = new EAElement();
                attr.Stereotype = "string,DataItem";

                string s = SchemaManager.getDataItemType(attr);
                Assert.AreEqual("string", s);
            }
            {
                EA.Element attr = new EAElement();
                attr.Stereotype = null;

                string s = SchemaManager.getDataItemType(attr);
                Assert.IsNull(s);
            }
        }
예제 #5
0
        public void MultipleLevelsOfResources()
        {
            EAMetaModel meta = new EAMetaModel();

            meta.setupAPIPackage();
            EAFactory api = APIModel.createMOM(meta);

            YamlMappingNode map = new YamlMappingNode();

            //Test
            APIManager.reifyAPI(EARepository.Repository, api.clientElement, map);

            YamlScalarNode mom = new YamlScalarNode();
            YamlNode       momValue;

            mom.Value = "/mom";
            Assert.IsTrue(map.Children.TryGetValue(mom, out momValue));


            YamlMappingNode resourceProps = (YamlMappingNode)momValue;
            YamlScalarNode  ev            = new YamlScalarNode();
            YamlNode        eventValue;

            ev.Value = "/event";
            Assert.IsTrue(resourceProps.Children.TryGetValue(ev, out eventValue));
        }
예제 #6
0
        public void TestUpdateClassFromInstance_NewDataItem()
        {
            DiagramCache diagramCache = new DiagramCache();
            EAMetaModel  meta         = new EAMetaModel().setupSchemaPackage();
            EAFactory    rootClass    = new EAFactory();

            rootClass.setupClient("SomeClass", RoundTripAddInClass.EA_TYPE_CLASS, RoundTripAddInClass.EA_STEREOTYPE_REQUEST, 0, null);
            EA.Element el = rootClass.clientElement;

            EAFactory attrFactory = rootClass.addSupplier("SomeAttribute", RoundTripAddInClass.EA_TYPE_CLASS, 0, RoundTripAddInClass.EA_STEREOTYPE_DATAITEM, null, "someAttribute", RoundTripAddInClass.CARDINALITY_0_TO_ONE, null);

            EA.Element attr = attrFactory.clientElement;

            EA.Package pkg = SchemaManager.generateSample(EARepository.Repository, diagramCache);

            object os = pkg.Elements.GetAt(0);

            EA.Element sample = (EA.Element)os;

            string nrs = ObjectManager.addRunState(sample.RunState, "SomeAttribute", "foobar", 0);

            sample.RunState = nrs;

            SchemaManager.updateClassFromSample(EARepository.Repository, sample);

            EA.TaggedValue def = SchemaManager.getAttributeDefault(attr);
            Assert.AreEqual("foobar", def.Value);
        }
        public void TestExportPopulation()
        {
            EAMetaModel meta = new EAMetaModel().setupPopulationPackage();

            EAFactory rootClass = EAModel.createPopulation(meta);

            meta.setupPopulationPackage();
            EA.Package package = EARepository.currentPackage;


            Assert.AreEqual(1, package.Diagrams.Count);

            object o = package.Diagrams.GetAt(0);

            EA.Diagram diagram = (EA.Diagram)o;

            Assert.AreEqual(2, package.Elements.Count);

            DiagramCache diagramCache = new DiagramCache();

            //Test
            RepositoryHelper.createDiagramCache(EARepository.Repository, diagram, diagramCache);
            JArray jobject = (JArray)PopulationManager.sampleToJObject(EARepository.Repository, diagram, diagramCache)["json"];

            Assert.AreEqual(1, jobject.Count);
        }
예제 #8
0
        public void TestHomeQuote()
        {
            EAMetaModel meta = new EAMetaModel().setupAPIPackage();
            EAFactory   api  = APIModels.APIModel.createHomeQuote(meta);

            YamlMappingNode map = new YamlMappingNode();

            //Test
            APIManager.reifyAPI(EARepository.Repository, api.clientElement, map);

            YamlDocument d = new YamlDocument(map);

            YamlStream stream = new YamlStream();

            stream.Documents.Add(d);

            StringWriter writer = new StringWriter();

            stream.Save(writer, false);

            string yaml = writer.ToString();

            FileManager fileManager = new FileManager(null);

            fileManager.initializeAPI(EARepository.currentPackage.Name);
            fileManager.setup(APIAddinClass.RAML_0_8);
            fileManager.exportAPI(EARepository.currentPackage.Name, APIAddinClass.RAML_0_8, yaml);
        }
예제 #9
0
        public void TestExportClassWithFirstClassAttribute()
        {
            EAMetaModel meta = new EAMetaModel();

            APIModel.createAPI_AttributesFirstClass(meta);
            meta.setupSchemaPackage();

            //Test
            JSchema jschema = SchemaManager.schemaToJsonSchema(EARepository.Repository, EARepository.currentDiagram).Value;

            {
                JSchema child = jschema.Properties["propClass"];
                Assert.AreEqual(JSchemaType.String, child.Type);
            }
            {
                JSchema child = jschema.Properties["propertyClass2"];
                Assert.AreEqual(JSchemaType.String, child.Type);
            }


            EA.Package package = SchemaManager.generateSample(EARepository.Repository);
            object     o       = package.Diagrams.GetAt(0);

            EA.Diagram diaObj = (EA.Diagram)o;

            IList <EA.Element> objects = MetaDataManager.diagramSamples(EARepository.Repository, diaObj);

            Assert.AreEqual(1 + 1, objects.Count);
        }
예제 #10
0
        public void TestExportSample()
        {
            EAMetaModel meta = new EAMetaModel().setupSchemaPackage();

            EAFactory rootClass = APIModels.APIModel.createAPI1(meta);

            meta.setupSchemaPackage();

            EA.Package package = SchemaManager.generateSample(EARepository.Repository);

            Assert.AreEqual(1, package.Diagrams.Count);
            object o = package.Diagrams.GetAt(0);

            EA.Diagram diagram = (EA.Diagram)o;

            Assert.AreEqual(3, package.Elements.Count);

            o = package.Elements.GetAt(0);
            EA.Element sample = (EA.Element)o;
            sample.RunState = ObjectManager.addRunState(sample.RunState, "intAttribute", "123", rootClass.clientElement.ElementID);

            meta.setupSamplePackage();
            //Test
            JObject jobject = (JObject)SampleManager.sampleToJObject(EARepository.Repository, diagram)["json"];

            Assert.AreEqual(8, jobject.Count);
        }
예제 #11
0
        static public EAFactory createHomeQuote(EAMetaModel meta)
        {
            EAFactory api = new EAFactory();

            meta.setupAPIPackage();

            api.setupClient("api", APIAddinClass.EA_TYPE_OBJECT, APIAddinClass.EA_STEREOTYPE_SAMPLE, meta.META_API.ElementID, new string[] { APIManager.TITLE, "House And Content Quotes Web API", "version", "v1511", "baseUri", "https://api.live.iag.co.nz", "mediaType", "application/json" });

            EAFactory resource = api.addSupplier("/quotes/home/{version}", APIAddinClass.EA_TYPE_OBJECT, meta.META_RESOURCE.ElementID, null /*target stereotype*/, new string[] { "description", "This Web API is used to submit a house and content insurance quote" } /*runstate*/, "resource" /*supplierEndRole*/, "" /*relationshipName*/, null);

            EAFactory schema = api.addSupplier("homeQuote", APIAddinClass.EA_TYPE_CLASS, 0, null /*target stereotype*/, null /*runstate*/, "homeQuote" /*supplier end role*/, "", null);

            //api.addSupplier("resource-types", APIAddinClass.EA_TYPE_OBJECT, meta.metaResourceType.ElementID, null/*runstate*/, "resourceTypes"/*supplierEndRole*/, ""/*relationshipName*/);
            EAFactory typesForResource = resource.addSupplier("item-post", APIAddinClass.EA_TYPE_OBJECT, meta.META_TYPE_FOR_RESOURCE.ElementID, null /*target stereotype*/, null, "item-post", "", null);

            //typesForResource.addSupplier("homeQuote2", APIAddinClass.EA_TYPE_CLASS, meta.META_SCHEMA.ElementID, null, "postRespSchema", "");

            //typesForResource.addSupplier("responseInfo", APIAddinClass.EA_TYPE_CLASS, meta.META_SCHEMA.ElementID, null, "infoSchema", "");

            typesForResource.addSupplier("postSampleReq", APIAddinClass.EA_TYPE_OBJECT, schema.clientElement.ElementID, null /*target stereotype*/, null, "postSampleReq", "", null);
            typesForResource.addSupplier("postSample200Req", APIAddinClass.EA_TYPE_OBJECT, schema.clientElement.ElementID, null /*target stereotype*/, null, "postSample200Req", "", null);

            EAFactory method = resource.addSupplier("post", APIAddinClass.EA_TYPE_OBJECT, meta.META_METHOD.ElementID, null /*target stereotype*/, new string[] { "test", "testvalue" } /*runstate*/, "post", "", null);

            return(api);
        }
예제 #12
0
        public void importWSDL()
        {
            EAMetaModel meta = new EAMetaModel().setupSOAPackage();


            string filename = @"..\..\Resources\service.wsdl";

            WSDLManager mgr = new WSDLManager();

            mgr.importWSDL(filename, EARepository.Repository, meta.soaDiagram);
        }
예제 #13
0
        public void importWSDL()
        {
            EAMetaModel meta = new EAMetaModel().setupSOAPackage();


            String filename = @"D:\SOA\Modelling\Schema\CommunicationManagement_implementation_v1_datarich.wsdl";

            WSDLManager mgr = new WSDLManager();

            mgr.importWSDL(filename, EARepository.Repository, meta.soaDiagram);
        }
예제 #14
0
        static public EAFactory createModel1(EAMetaModel meta)
        {
            EAFactory factory = new EAFactory();

            meta.setupSchemaPackage();

            meta.setupSamplePackage();
            EAFactory sampleRoot = factory.setupClient("ObjectWithListAttribute", RoundTripAddInClass.EA_TYPE_OBJECT, RoundTripAddInClass.EA_STEREOTYPE_REQUEST, 0, null);

            return(sampleRoot);
        }
예제 #15
0
        public void TestValidateDiagram_Invalid()
        {
            EAMetaModel meta = new EAMetaModel().setupSchemaPackage();

            EAFactory rootClass = APIModels.APIModel.createInvalidAPI(meta);

            meta.setupSamplePackage();

            //Test
            IList <string> errors = SampleManager.diagramValidation(EARepository.Repository, meta.sampleDiagram);

            Assert.IsTrue(errors.Count > 0);
        }
예제 #16
0
        public void TestEAMock()
        {
            EAMetaModel meta = new EAMetaModel();

            EARepository rep = EARepository.Repository;

            EAElement metaAPI = new EAElement();

            metaAPI.Name = "API";

            EAElement api = new EAElement();

            api.Name         = "api";
            api.Type         = "Class";
            api.Stereotype   = "stereotype";
            api.ClassifierID = metaAPI.ElementID;

            api.RunState = "runstate";

            EAElement resource = new EAElement();

            resource.Name = "/resource";

            EA.Collection connectors = api.Connectors;
            object        con        = connectors.AddNew("", RoundTripAddIn.RoundTripAddInClass.EA_TYPE_ASSOCIATION);

            EAConnector c = (EAConnector)con;

            c.ClientID   = api.ElementID;
            c.SupplierID = resource.ElementID;

            c.SupplierEnd.Role = "SupplierRole";

            Assert.AreEqual(1, api.Connectors.Count);


            EAElement metaAPI2 = (EAElement)rep.GetElementByID(metaAPI.ElementID);

            Assert.AreEqual(metaAPI.ElementID, metaAPI2.ElementID);

            EAElement api2      = (EAElement)rep.GetElementByID(c.ClientID);
            EAElement resource2 = (EAElement)rep.GetElementByID(c.SupplierID);

            Assert.AreEqual(api.ElementID, api2.ElementID);
            Assert.AreEqual(resource.ElementID, resource2.ElementID);

            Assert.IsNotNull(c.SupplierEnd);
            Assert.IsNotNull(c.SupplierEnd.Role);
        }
예제 #17
0
        public void TestExportObjectWithListAttribute()
        {
            EAMetaModel meta      = new EAMetaModel();
            EAFactory   rootClass = APIModels.APIModel.createAPI1(meta);

            meta.setupSamplePackage();

            //Test
            JObject jobject = (JObject)SampleManager.sampleToJObject(EARepository.Repository, EARepository.currentDiagram)["json"];

            Assert.AreEqual(1, jobject.Count);

            JToken t = null;

            t = jobject.Value <JToken>("0OrMoreAttribute");
            Assert.IsNotNull(t);
            Assert.AreEqual(t.Type, JTokenType.Array);
        }
예제 #18
0
        public void TestSchemaExport()
        {
            EAMetaModel meta = new EAMetaModel();

            APIModel.createAPI1(meta);
            meta.setupSchemaPackage();

            FileManager fileManager = new FileManager(null);

            SchemaManager.setFileManager(fileManager);

            //Test
            JSchema jschema = SchemaManager.schemaToJsonSchema(EARepository.Repository, EARepository.currentDiagram).Value;


            Assert.IsTrue(jschema.Properties.ContainsKey("booleanAttr"));
            Assert.AreEqual(JSchemaType.Boolean, jschema.Properties["booleanAttr"].Type);
        }
예제 #19
0
        public void TestRAML1()
        {
            EAMetaModel meta = new EAMetaModel();

            meta.setupAPIPackage();
            EAFactory api = APIModel.createAPI1(meta);

            YamlMappingNode map = new YamlMappingNode();

            RAMLManager.REIFY_VERSION = APIAddinClass.RAML_1_0;

            //Test
            RAMLManager.reifyAPI(EARepository.Repository, api.clientElement, map);

            YamlDocument d = new YamlDocument(map);

            YamlStream stream = new YamlStream();

            stream.Documents.Add(d);

            StringWriter writer = new StringWriter();

            stream.Save(writer, false);

            string yaml = writer.ToString();

            Assert.IsTrue(yaml.Contains("is: [notcacheable]"));

            Assert.IsTrue(yaml.Contains("dev-environment"));
            Assert.IsTrue(yaml.Contains("prod-environment"));

            Assert.IsTrue(yaml.Contains("someuriparameter"));

            Assert.IsTrue(yaml.Contains("data_item_description"));

            FileManager fileManager = new FileManager(null);

            fileManager.setBasePath(".");
            fileManager.initializeAPI(EARepository.currentPackage.Name);
            fileManager.setup(APIAddinClass.RAML_0_8);
            fileManager.exportAPI(EARepository.currentPackage.Name, APIAddinClass.RAML_0_8, yaml.ToString(), "");
        }
예제 #20
0
        public void TestGenerateSample()
        {
            EAMetaModel meta      = new EAMetaModel().setupSchemaPackage();
            EAFactory   rootClass = new EAFactory();

            rootClass.setupClient("RootClass", APIAddinClass.EA_TYPE_CLASS, APIAddinClass.EA_STEREOTYPE_REQUEST, 0, null);
            EAFactory childClass = rootClass.addSupplier("ChildClass", APIAddinClass.EA_TYPE_CLASS, 0, null /*target stereotype*/, null, "optionalAttribute" /*supplierEndRole*/, "1" /*cardinality*/, null);


            //Test
            EA.Package package = SchemaManager.generateSample(EARepository.Repository);
            Assert.AreEqual(1, package.Diagrams.Count);

            Assert.AreEqual(3, package.Elements.Count);

            object o = package.Diagrams.GetAt(0);

            EA.Diagram diaObj = (EA.Diagram)o;
            Assert.AreEqual(2 + 1, diaObj.DiagramObjects.Count);
        }
예제 #21
0
        public void TestValidateDiagram_Valid()
        {
            EAMetaModel meta = new EAMetaModel().setupSchemaPackage();

            EAFactory rootClass = APIModels.APIModel.createAPI1(meta);

            meta.setupSchemaPackage();

            EA.Package package = SchemaManager.generateSample(EARepository.Repository);

            Assert.AreEqual(1, package.Diagrams.Count);
            object o = package.Diagrams.GetAt(0);

            EA.Diagram diagram = (EA.Diagram)o;

            //Test
            IList <string> errors = SampleManager.diagramValidation(EARepository.Repository, diagram);

            Assert.IsNull(errors);
        }
예제 #22
0
        static public EAFactory createAPI2(EAMetaModel meta)
        {
            EAFactory factory = new EAFactory();

            meta.setupSchemaPackage();

            EAFactory typesForResource = factory.setupClient("item-get", APIAddinClass.EA_TYPE_OBJECT, APIAddinClass.EA_STEREOTYPE_NONE, meta.META_TYPE_FOR_RESOURCE.ElementID, null);

            EAFactory rootclass = typesForResource.addSupplier("RootClass", APIAddinClass.EA_TYPE_CLASS, 0, null /*target stereotype*/, null, "requestSchema", APIAddinClass.CARDINALITY_ONE, null);

            EAFactory inlineObject = rootclass.addSupplier("IdentifierClass", APIAddinClass.EA_TYPE_CLASS, 0, null /*target stereotype*/, null, "identifierObject" /*supplierEndRole*/, "1" /*cardinality*/, APIAddinClass.EA_STEREOTYPE_EMBEDDED);

            inlineObject.addAttribute("objectAttr", APIAddinClass.EA_TYPE_STRING);

            meta.setupAPIPackage();

            EAFactory factoryresult = factory.setupClient("APITitle", APIAddinClass.EA_TYPE_OBJECT, APIAddinClass.EA_STEREOTYPE_SAMPLE, meta.META_API.ElementID, new string[] { APIManager.TITLE, "APITitle", "version", "1", "baseUri", "http://localhost", "mediaType", "application/json" });

            return(factoryresult);
        }
예제 #23
0
        static public EAFactory createPopulation(EAMetaModel meta)
        {
            EAFactory factory = new EAFactory();

            meta.setupPopulationPackage();

            EA.Package package = EARepository.currentPackage;
            EA.Diagram diagram = EARepository.currentDiagram;

            EAFactory populationIndicator = factory.setupClient("populationIndicator", RoundTripAddInClass.EA_TYPE_OBJECT, RoundTripAddInClass.EA_STEREOTYPE_POPULATION, meta.META_SERVER.ElementID, null);


            EAFactory populationMember = factory.setupClient("populationMember", RoundTripAddInClass.EA_TYPE_OBJECT, null, meta.META_SERVER.ElementID, new string[] { "Name", "Name1", "version", "1" });

            //Object o = package.Diagrams.AddNew("Population-Sample", "Object");
            //EA.Diagram newdia = (EA.Diagram)o;
            EA.Diagram newdia = diagram;

            EARepository.currentPackage.Diagrams.Refresh();
            newdia.Stereotype = RoundTripAddInClass.EA_STEREOTYPE_SAMPLEDIAGRAM;
            newdia.Update();
            EARepository.currentPackage.Update();

            //logger.log("Added diagram:" + newdia.DiagramID);


            //Object o2 = diagram.DiagramObjects.AddNew("Indicator", "");
            //EA.DiagramObject diaObj2 = (EA.DiagramObject)o2;

            //diagram.Update();
            //diaObj2.ElementID = populationIndicator.clientElement.ElementID;
            //diaObj.Update();

            //Object o3 = diagram.DiagramObjects.AddNew("Item", "");
            //EA.DiagramObject diaObj3 = (EA.DiagramObject)o3;
            //diagram.Update();
            //diaObj3.ElementID = populationMember.clientElement.ElementID;

            return(factory);
        }
예제 #24
0
        public void exportWSDL()
        {
            EAMetaModel meta = new EAMetaModel();

            EA.Element component = new EAElement();
            component.Name    = "CommunicationManagement";
            component.Version = "http://usermodel.namespace";

            {
                object    obj = component.Methods.AddNew("operation1", "");
                EA.Method op1 = (EA.Method)obj;
                op1.Name = "DoSomething1";
                object       objParam = op1.Parameters.AddNew("paramString", "");
                EA.Parameter param    = (EA.Parameter)objParam;
                param.Name = "paramStringName";
                param.Type = "String";
                param.Kind = "Input";
            }
            {
                object    obj = component.Methods.AddNew("operation2", "");
                EA.Method op1 = (EA.Method)obj;
                op1.Name = "DoSomething2";
                object       objParam = op1.Parameters.AddNew("paramString", "");
                EA.Parameter param    = (EA.Parameter)objParam;
                param.Name = "paramStringName";
                param.Type = "String";
                param.Kind = "Input";
            }

            WSDLManager mgr = new WSDLManager();

            ServiceDescription sd = mgr.exportWSDL(EARepository.Repository, component);


            sd.Write(@"service.wsdl");

            Assert.IsNotNull(sd);
            Assert.AreEqual(1, sd.PortTypes.Count);
        }
예제 #25
0
 public void TestGetDataItemExample()
 {
     EAMetaModel meta = new EAMetaModel();
     {
         EA.Element     attr = new EAElement();
         object         o    = attr.TaggedValues.AddNew(RoundTripAddInClass.EA_TAGGEDVALUE_DEFAULT, "");
         EA.TaggedValue tv   = (EA.TaggedValue)o;
         tv.Name  = RoundTripAddInClass.EA_TAGGEDVALUE_DEFAULT;
         tv.Value = "foobar";
         string s = SchemaManager.getDataItemExample(attr);
         Assert.AreEqual("foobar", s);
     }
     {
         EA.Element     attr = new EAElement();
         object         o    = attr.TaggedValues.AddNew(RoundTripAddInClass.EA_TAGGEDVALUE_DEFAULT, "");
         EA.TaggedValue tv   = (EA.TaggedValue)o;
         tv.Name  = RoundTripAddInClass.EA_TAGGEDVALUE_DEFAULT;
         tv.Value = null;
         string s = SchemaManager.getDataItemExample(attr);
         Assert.IsNull(s);
     }
 }
예제 #26
0
        public void TestUpdateInstanceFromClass()
        {
            DiagramCache diagramCache = new DiagramCache();
            EAMetaModel  meta         = new EAMetaModel().setupSchemaPackage();
            EAFactory    rootClass    = new EAFactory();

            rootClass.setupClient("SomeClass", RoundTripAddInClass.EA_TYPE_CLASS, RoundTripAddInClass.EA_STEREOTYPE_REQUEST, 0, null);
            EA.Element el = rootClass.clientElement;

            object o = el.Attributes.AddNew("SomeAttribute", "Attribute");

            EA.Attribute attr = (EA.Attribute)o;

            EAFactory anotherAttribute = rootClass.addSupplier("anotherAttribute", RoundTripAddInClass.EA_TYPE_CLASS, 0, RoundTripAddInClass.EA_STEREOTYPE_DATAITEM, null, "", RoundTripAddInClass.CARDINALITY_0_TO_ONE, "");

            EA.Element attrClass = anotherAttribute.clientElement;

            EA.Package pkg = SchemaManager.generateSample(EARepository.Repository, diagramCache);

            object os = pkg.Elements.GetAt(0);

            EA.Element sample = (EA.Element)os;

            string nrs = ObjectManager.addRunState(sample.RunState, "SomeAttribute", "foobar", 0);

            sample.RunState = nrs;

            nrs             = ObjectManager.addRunState(sample.RunState, "anotherAttribute", "foobar2", 0);
            sample.RunState = nrs;

            attr.Name      = "SomeAttribute2";//We update the attribute name to test that this update gets reflected onto the object
            attrClass.Name = "anotherAttribute2";

            SchemaManager.updateSampleFromClass(EARepository.Repository, sample);

            Assert.IsTrue(ObjectManager.parseRunState(sample.RunState).ContainsKey("SomeAttribute2"));
            Assert.IsTrue(ObjectManager.parseRunState(sample.RunState).ContainsKey("anotherAttribute2"));
        }
예제 #27
0
        public void TestExportClassWithListAttribute()
        {
            EAMetaModel meta = new EAMetaModel();

            APIModel.createAPI1(meta);
            meta.setupSchemaPackage();


            FileManager fileManager = new FileManager(null);

            SchemaManager.setFileManager(fileManager);

            //Test
            JSchema jschema = SchemaManager.schemaToJsonSchema(EARepository.Repository, EARepository.currentDiagram).Value;

            JSchema child = jschema.Properties["0OrMoreAttribute"];

            Assert.AreEqual(JSchemaType.Array, child.Type);

            JSchema listStringProp = jschema.Properties["listStringAttr"];

            Assert.AreEqual(JSchemaType.Array, listStringProp.Type);
        }
예제 #28
0
        static public EAFactory createAPI1(EAMetaModel meta)
        {
            EAFactory factory = new EAFactory();

            meta.setupSchemaPackage();

            EAFactory typesForResource = factory.setupClient("item-get", APIAddinClass.EA_TYPE_OBJECT, APIAddinClass.EA_STEREOTYPE_NONE, meta.META_TYPE_FOR_RESOURCE.ElementID, null);

            EAFactory rootclass = typesForResource.addSupplier("RootClass", APIAddinClass.EA_TYPE_CLASS, 0, null /*target stereotype*/, null, "requestSchema", APIAddinClass.CARDINALITY_ONE, null);

            rootclass.addAttribute("listStringAttr", APIAddinClass.EA_TYPE_STRING, "0", "*");

            rootclass.addAttribute("booleanAttr", APIAddinClass.EA_TYPE_BOOLEAN);
            rootclass.addAttribute("floatAttr", APIAddinClass.EA_TYPE_FLOAT);
            rootclass.addAttribute("intAttr", APIAddinClass.EA_TYPE_INT);
            rootclass.addAttribute("dateAttr", APIAddinClass.EA_TYPE_DATE, "0", "1", "2016-01-01");
            rootclass.addAttribute("currencyAttr", APIAddinClass.EA_TYPE_DECIMAL);

            EAFactory childClass = rootclass.addSupplier("ChildClass", APIAddinClass.EA_TYPE_CLASS, 0, null /*target stereotype*/, null, "0OrMoreAttribute" /*supplierEndRole*/, "0..*" /*cardinality*/, null);

            EAFactory enumExample = rootclass.addSupplier("EnumExample", APIAddinClass.EA_TYPE_ENUMERATION, 0, null /*target stereotype*/, null, "enumExample" /*supplierEndRole*/, "1" /*cardinality*/, null);

            enumExample.clientElement.Attributes.AddNew("Enum1", APIAddinClass.EA_TYPE_ATTRIBUTE);
            enumExample.clientElement.Attributes.AddNew("Enum2", APIAddinClass.EA_TYPE_ATTRIBUTE);

            meta.setupAPIPackage();

            EAFactory api = factory.setupClient("APITitle", APIAddinClass.EA_TYPE_OBJECT, APIAddinClass.EA_STEREOTYPE_SAMPLE, meta.META_API.ElementID, new string[] { APIManager.TITLE, "APITitle", "version", "1", "baseUri", "http://localhost", "mediaType", "application/json" });

            EAFactory resource = factory.addSupplier("/resource/{someuriparameter}", APIAddinClass.EA_TYPE_OBJECT, meta.META_RESOURCE.ElementID, null /*target stereotype*/, new string[] { "test", "testvalue" } /*runstate*/, "resource" /*supplierEndRole*/, "" /*relationshipName*/, null);

            resource.addSupplier("propertyClass", APIAddinClass.EA_TYPE_CLASS, 0, APIAddinClass.EA_STEREOTYPE_DATAITEM + "," + APIAddinClass.EA_TYPE_STRING /*target stereotype*/, null, "propClass" /*supplierEndRole*/, "1" /*cardinality*/, APIAddinClass.EA_TYPE_STRING);

            EAFactory schema = factory.addSupplier(rootclass.clientElement, "quoteSchema" /*supplier end role*/, "", null);

            resource.addSupplier(typesForResource.clientElement, "item-get", "", null);

            EAFactory getMethod = resource.addSupplier("get", APIAddinClass.EA_TYPE_OBJECT, meta.META_METHOD.ElementID, null /*target stereotype*/, null /*run state*/, "", "", null);

            EAFactory queryMethod = getMethod.addSupplier("somequeryparameter", APIAddinClass.EA_TYPE_OBJECT, meta.META_QUERY_PARAMETER.ElementID, null /*Target stereotype*/, null /*run state*/, "", "", null);
            EAFactory dataitem    = queryMethod.addSupplier("somequeryparameter_type", APIAddinClass.EA_TYPE_CLASS, 0, APIAddinClass.EA_STEREOTYPE_DATAITEM, null /*run state*/, "", "", null);

            dataitem.clientElement.Notes = "data_item_description";

            getMethod.addSupplier("notcacheable", APIAddinClass.EA_TYPE_OBJECT, meta.META_TRAIT.ElementID, null /*target stereotype*/, null /*run state*/, "", "", null);

            getMethod.addSupplier("PERMISSION_EXECUTE", APIAddinClass.EA_TYPE_OBJECT, meta.META_PERMISSION.ElementID, null /*target stereotype*/, null /*run state*/, "", "", null);

            typesForResource.addSupplier("sample200Resp", APIAddinClass.EA_TYPE_OBJECT, schema.clientElement.ElementID, null /*target stereotype*/, null, "sample200Resp", "", null);


            meta.setupSamplePackage();
            EAFactory sampleRoot = factory.setupClient("ObjectWithListAttribute", APIAddinClass.EA_TYPE_OBJECT, APIAddinClass.EA_STEREOTYPE_REQUEST, rootclass.clientElement.ElementID, null);

            sampleRoot.addSupplier("ChildObjects", APIAddinClass.EA_TYPE_OBJECT, childClass.clientElement.ElementID, null /*target stereotype*/, null, "0OrMoreAttribute" /*supplierEndRole*/, "0..*" /*cardinality*/, null);

            EAFactory releasePipeline = api.addSupplier("ReleasePipeline", APIAddinClass.EA_TYPE_OBJECT, meta.META_RELEASEPIPELINE.ElementID, null /*target stereotype*/, null, "" /*supplierEndRole*/, "" /*cardinality*/, null);

            releasePipeline.addSupplier("dev-environment", APIAddinClass.EA_TYPE_OBJECT, meta.META_ENVIRONMENT.ElementID, null /*target stereotype*/, null, "" /*supplierEndRole*/, "" /*cardinality*/, null);
            releasePipeline.addSupplier("prod-environment", APIAddinClass.EA_TYPE_OBJECT, meta.META_ENVIRONMENT.ElementID, null /*target stereotype*/, null, "" /*supplierEndRole*/, "" /*cardinality*/, null);

            return(api);
        }