Beispiel #1
0
        public void TestSingleAttributeCurrentView()
        {
            this.Reset();
            string declaration = "{#mail}";

            AttributeDeclarationParser t = new AttributeDeclarationParser(declaration);

            if (t.HasErrors)
            {
                foreach (TokenError e in t.Errors)
                {
                    Debug.WriteLine("Error: " + e);
                }

                Assert.Fail("The tokenizer returned an unexpected error");
            }

            Assert.AreEqual(t.View, HologramView.Current);
            Assert.AreEqual(t.Attribute, ActiveConfig.DB.GetAttribute("mail"));
        }
Beispiel #2
0
        public void TestSingleAttributeWithOptionalTextLeftRight()
        {
            this.Reset();
            string declaration = "[This address '{mail}' is my mail address]";

            AttributeDeclarationParser t = new AttributeDeclarationParser(declaration);

            if (t.HasErrors)
            {
                foreach (TokenError e in t.Errors)
                {
                    Debug.WriteLine("Error: " + e);
                }

                Assert.Fail("The tokenizer returned an unexpected error");
            }

            Assert.AreEqual("This address '", t.PreText);
            Assert.AreEqual("' is my mail address", t.PostText);
            Assert.AreEqual(HologramView.Proposed, t.View);
            Assert.AreEqual(ActiveConfig.DB.GetAttribute("mail"), t.Attribute);
        }
Beispiel #3
0
        public void ThrowOnReferencedAttribute()
        {
            AcmaSchemaObjectClass schemaObject = ActiveConfig.DB.GetObjectClass("person");
            AcmaSchemaAttribute   attribute    = ActiveConfig.DB.GetAttribute("supervisor");
            string declarationString           = "{supervisor->unixGid}";
            AttributeDeclarationParser p       = new AttributeDeclarationParser(declarationString);
            AttributeDeclaration       target  = p.GetAttributeDeclaration();

            CSEntryChange sourceObject = CSEntryChange.Create();

            sourceObject.ObjectModificationType = ObjectModificationType.Add;
            sourceObject.AttributeChanges.Add(AttributeChange.CreateAttributeAdd(attribute.Name, Guid.NewGuid()));

            try
            {
                object value = target.Expand(sourceObject).First();

                Assert.Fail("The expansion did not trigger an exception");
            }
            catch (NotSupportedException)
            { }
        }
Beispiel #4
0
        public void TestSingleReferenceAttributeWithOptionalTextAndTransforms()
        {
            this.Reset();
            ActiveConfig.XmlConfig.Transforms.Add(new TypeConverterTransform()
            {
                ID = "test1"
            });
            ActiveConfig.XmlConfig.Transforms.Add(new TypeConverterTransform()
            {
                ID = "test2"
            });
            string declaration = "[This is the direct reports {directReports->mail>>test1>>test2} mail]";

            AttributeDeclarationParser t = new AttributeDeclarationParser(declaration);

            if (t.HasErrors)
            {
                foreach (TokenError e in t.Errors)
                {
                    Debug.WriteLine("Error: " + e);
                }

                Assert.Fail("The tokenizer returned an unexpected error");
            }

            Assert.AreEqual(t.View, HologramView.Proposed);
            Assert.AreEqual(t.Attribute, ActiveConfig.DB.GetAttribute("mail"));
            Assert.AreEqual("This is the direct reports ", t.PreText);
            Assert.AreEqual(" mail", t.PostText);
            CollectionAssert.AreEqual(t.EvaluationPath.ToList(), new List <AcmaSchemaAttribute>()
            {
                ActiveConfig.DB.GetAttribute("directReports")
            });
            CollectionAssert.AreEqual(t.Transforms.Select(u => u.ID).ToList(), new List <string>()
            {
                "test1", "test2"
            });
        }
Beispiel #5
0
        public void TestSingleAttributeWithMultipleTransformAndOptionalTextLeftRight()
        {
            this.Reset();
            ActiveConfig.XmlConfig.Transforms.Add(new TypeConverterTransform()
            {
                ID = "test1"
            });
            ActiveConfig.XmlConfig.Transforms.Add(new TypeConverterTransform()
            {
                ID = "test2"
            });
            ActiveConfig.XmlConfig.Transforms.Add(new TypeConverterTransform()
            {
                ID = "test3"
            });
            string declaration = "[This address '{mail>>test1>>test2>>test3}' is my mail address]";

            AttributeDeclarationParser t = new AttributeDeclarationParser(declaration);

            if (t.HasErrors)
            {
                foreach (TokenError e in t.Errors)
                {
                    Debug.WriteLine("Error: " + e);
                }

                Assert.Fail("The tokenizer returned an unexpected error");
            }

            Assert.AreEqual("This address '", t.PreText);
            Assert.AreEqual("' is my mail address", t.PostText);
            Assert.AreEqual(HologramView.Proposed, t.View);
            Assert.AreEqual(ActiveConfig.DB.GetAttribute("mail"), t.Attribute);
            CollectionAssert.AreEqual(t.Transforms.Select(u => u.ID).ToList(), new List <string>()
            {
                "test1", "test2", "test3"
            });
        }