public void CapabilityExportRelatedConcept()
        {
            var          collection      = new CapabilitiesCollection();
            const string conceptName     = "concept";
            const string relatedConcept  = "related";
            const string relatedConcept2 = "related2";
            const string relatedConcept3 = "related3";
            var          concept         = collection.AddConcept(conceptName);
            var          related         = collection.AddConcept(relatedConcept);

            concept.AddRelatedConcept(related);
            collection.AddRelation(conceptName, relatedConcept2);
            collection.AddRelation(conceptName, relatedConcept3);

            concept.SetCapability("Color", "Red");
            related.SetCapability("Icon", "image.png");

            concept.AddBlacklistedCapability("Icon");

            const string documentName = "related.xmlcaps";
            const string capsFileName = "related.caps";

            collection.SaveAsDocument(documentName);
            CapabilitiesDocumentImporter.LoadFileCapabilities(documentName, capsFileName);
            var exists = File.Exists(capsFileName);

            Assert.IsTrue(exists);
            collection = CapabilitiesLoader.LoadFileCapabilities(capsFileName);

            Assert.IsTrue(collection.HasConcept("concept"));
        }
        public void TestRelateCapability()
        {
            var          collection   = new CapabilitiesCollection();
            const string shapeId      = "shape";
            const string tranId       = "transform";
            var          shapeConcept = collection.AddConcept(shapeId);

            shapeConcept.SetCapability("Color", "Red");
            var tranConcept = collection.AddConcept(tranId);

            collection.AddRelation(tranId, shapeId);
            var colorValue = tranConcept.GetCapability("Color");

            Assert.IsTrue(tranConcept.HasCapability("Color"));
            Assert.AreEqual(colorValue, "Red");
            Assert.IsTrue(tranConcept.IsRelatedWith(shapeId));
        }
        public void TestConceptBuilder()
        {
            var          collection   = new CapabilitiesCollection();
            const string shapeId      = "shape";
            const string circleId     = "circle";
            var          shapeConcept = collection.AddConcept(shapeId);

            shapeConcept.SetCapability("Color", "Red");
            var circleConcept = collection.AddConcept(circleId);

            collection.AddRelation(circleId, shapeId);

            Assert.IsTrue(circleConcept.HasCapability("Color"));
            Assert.IsTrue(circleConcept.IsRelatedWith(shapeId));
            Assert.IsTrue(circleConcept.GetRelatedConcept(shapeId).Node == shapeConcept.Node);

            circleConcept.AddBlacklistedCapability("Color");
            Assert.IsFalse(circleConcept.HasCapability("Color"));
            Assert.IsTrue(circleConcept.GetCapability("Color") == String.Empty);

            circleConcept.RemoveBlackistedCapability("Color");
            Assert.IsTrue(circleConcept.HasCapability("Color"));
            Assert.IsTrue(circleConcept.GetCapability("Color") != String.Empty);
        }