Ejemplo n.º 1
0
        public void TestThatConstructorInitializeContextDocumentWithDescription()
        {
            var fixture = new Fixture();

            fixture.Customize <ContextDocumentCategories>(e => e.FromFactory(() => ContextDocumentCategories.SystemInformationOther));

            var id              = fixture.CreateAnonymous <int>();
            var nameSource      = fixture.CreateAnonymous <string>();
            var nameTarget      = fixture.CreateAnonymous <string>();
            var reference       = fixture.CreateAnonymous <string>();
            var description     = fixture.CreateAnonymous <string>();
            var category        = fixture.CreateAnonymous <ContextDocumentCategories>();
            var contextDocument = new ContextDocument(id, nameSource, nameTarget, reference, description, category);

            Assert.That(contextDocument, Is.Not.Null);
            Assert.That(contextDocument.Id, Is.EqualTo(id));
            Assert.That(contextDocument.NameSource, Is.Not.Null);
            Assert.That(contextDocument.NameSource, Is.Not.Empty);
            Assert.That(contextDocument.NameSource, Is.EqualTo(nameSource));
            Assert.That(contextDocument.NameTarget, Is.Not.Null);
            Assert.That(contextDocument.NameTarget, Is.Not.Empty);
            Assert.That(contextDocument.NameTarget, Is.EqualTo(nameTarget));
            Assert.That(contextDocument.Reference, Is.Not.Null);
            Assert.That(contextDocument.Reference, Is.Not.Empty);
            Assert.That(contextDocument.Reference, Is.EqualTo(reference));
            Assert.That(contextDocument.Description, Is.Not.Null);
            Assert.That(contextDocument.Description, Is.Not.Empty);
            Assert.That(contextDocument.Description, Is.EqualTo(description));
            Assert.That(contextDocument.DocumentDate, Is.Null);
            Assert.That(contextDocument.DocumentAuthors, Is.Not.Null);
            Assert.That(contextDocument.DocumentAuthors.Count, Is.EqualTo(0));
            Assert.That(contextDocument.Categories, Is.Not.Null);
            Assert.That(contextDocument.Categories.Count, Is.EqualTo(1));
            Assert.That(contextDocument.Categories.Contains(category), Is.True);
        }
Ejemplo n.º 2
0
        public void IIA001()
        {
            string[]      files    = new string[] { "2.IIA001Request.xml" };
            string        tempFile = Path.GetTempFileName();
            XmlTextWriter tw       = new XmlTextWriter(tempFile, System.Text.Encoding.ASCII);

            tw.Namespaces = true;
            tw.Formatting = Formatting.Indented;

            FileInfo requestFile = new FileInfo(Consts.Path + files[0]);

            using (FileStream fs = new FileStream(requestFile.FullName, FileMode.Open, FileAccess.Read))
            {
                // Load Request
                ContextDocumentReadWrite contextDocument = ContextLoader.LoadContextDocument(fs, XacmlVersion.Version20, DocumentAccess.ReadWrite);

                contextDocument.Request.Action.Attributes[0].AttributeId = "UnitTest!!!";

                contextDocument.WriteRequestDocument(tw);
                tw.Close();

                using (FileStream fs1 = new FileStream(tempFile, FileMode.Open, FileAccess.Read))
                {
                    ContextDocument newCon = (ContextDocument)ContextLoader.LoadContextDocument(fs1, XacmlVersion.Version20);

                    Assert.AreEqual(newCon.Request.Action.Attributes[0].AttributeId, contextDocument.Request.Action.Attributes[0].AttributeId);
                }
            }
        }
Ejemplo n.º 3
0
        public void TestThatDocumentDateSetterRaisesPropertyChangedEvent()
        {
            var fixture = new Fixture();

            fixture.Customize <DateTime>(e => e.FromFactory(() => DateTime.Now));
            fixture.Customize <ContextDocumentCategories>(e => e.FromFactory(() => ContextDocumentCategories.SystemInformationOther));

            var contextDocument = new ContextDocument(fixture.CreateAnonymous <int>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <ContextDocumentCategories>());

            Assert.That(contextDocument, Is.Not.Null);

            var eventCalled = false;

            contextDocument.PropertyChanged += (s, e) =>
            {
                Assert.That(s, Is.Not.Null);
                Assert.That(e, Is.Not.Null);
                Assert.That(e.PropertyName, Is.Not.Null);
                Assert.That(e.PropertyName, Is.Not.Empty);
                Assert.That(e.PropertyName, Is.EqualTo("DocumentDate"));
                eventCalled = true;
            };

            contextDocument.DocumentDate = contextDocument.DocumentDate;
            Assert.That(eventCalled, Is.False);

            contextDocument.DocumentDate = fixture.CreateAnonymous <DateTime>();
            Assert.That(eventCalled, Is.True);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Creates a new instance of the evaluaion context.
        /// </summary>
        /// <param name="engine">The engine instance.</param>
        /// <param name="policyDocument">The policy document instance.</param>
        /// <param name="contextDocument">The context document instance.</param>
        public EvaluationContext(EvaluationEngine engine, PolicyDocument policyDocument, ContextDocument contextDocument)
            : this()
        {
            var attributes = new AttributeReadWriteCollection();

            foreach (AttributeElementReadWrite attribute in contextDocument.Request.Resources[0].Attributes)
            {
                attributes.Add(new AttributeElementReadWrite(attribute));
            }

            ResourceContentElement resourceContent = null;

            if (contextDocument.Request.Resources[0].ResourceContent != null)
            {
                resourceContent = new ResourceContentElement(
                    contextDocument.Request.Resources[0].ResourceContent.XmlDocument,
                    contextDocument.Request.Resources[0].ResourceContent.SchemaVersion);
            }

            _engine          = engine;
            _policyDocument  = policyDocument;
            _contextDocument = contextDocument;
            CurrentResource  = new ResourceElementReadWrite(
                resourceContent,
                contextDocument.Request.Resources[0].ResourceScopeValue,
                attributes,
                contextDocument.Request.Resources[0].SchemaVersion);
        }
Ejemplo n.º 5
0
        public void TestThatAddDocumentAuthorThrowsArgumentNullExceptionIfDocumentAuthorIsNull()
        {
            var fixture = new Fixture();

            fixture.Customize <ContextDocumentCategories>(e => e.FromFactory(() => ContextDocumentCategories.SystemInformationOther));

            var contextDocument = new ContextDocument(fixture.CreateAnonymous <int>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <ContextDocumentCategories>());

            Assert.That(contextDocument, Is.Not.Null);

            Assert.Throws <ArgumentNullException>(() => contextDocument.AddDocumentAuthor(null));
        }
Ejemplo n.º 6
0
        public void TestAtAddCategoryAddInstitution()
        {
            var fixture = new Fixture();

            fixture.Customize <ContextDocumentCategories>(e => e.FromFactory(() => ContextDocumentCategories.SystemInformationOther));

            var contextDocument = new ContextDocument(fixture.CreateAnonymous <int>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <ContextDocumentCategories>());

            Assert.That(contextDocument, Is.Not.Null);
            Assert.That(contextDocument.Categories, Is.Not.Null);
            Assert.That(contextDocument.Categories.Count, Is.EqualTo(1));

            contextDocument.AddCategory(ContextDocumentCategories.SystemPurpose);
            Assert.That(contextDocument.Categories.Count, Is.EqualTo(2));
            Assert.That(contextDocument.Categories.Contains(ContextDocumentCategories.SystemPurpose), Is.True);
        }
Ejemplo n.º 7
0
        public void TestThatDocumentDateSetterChangedValue()
        {
            var fixture = new Fixture();

            fixture.Customize <DateTime>(e => e.FromFactory(() => DateTime.Now));
            fixture.Customize <ContextDocumentCategories>(e => e.FromFactory(() => ContextDocumentCategories.SystemInformationOther));

            var contextDocument = new ContextDocument(fixture.CreateAnonymous <int>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <ContextDocumentCategories>());

            Assert.That(contextDocument, Is.Not.Null);

            var newValue = fixture.CreateAnonymous <DateTime>();

            contextDocument.DocumentDate = newValue;

            Assert.That(contextDocument.DocumentDate, Is.EqualTo(newValue));
        }
Ejemplo n.º 8
0
        public void TestThatAddDocumentAuthorAddsDocumentAuthor()
        {
            var fixture = new Fixture();

            fixture.Customize <ContextDocumentCategories>(e => e.FromFactory(() => ContextDocumentCategories.SystemInformationOther));

            var contextDocument = new ContextDocument(fixture.CreateAnonymous <int>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <string>(), fixture.CreateAnonymous <ContextDocumentCategories>());

            Assert.That(contextDocument, Is.Not.Null);
            Assert.That(contextDocument.DocumentAuthors, Is.Not.Null);
            Assert.That(contextDocument.DocumentAuthors.Count, Is.EqualTo(0));

            var documentAuthorMock = MockRepository.GenerateMock <IDocumentAuthor>();

            contextDocument.AddDocumentAuthor(documentAuthorMock);
            Assert.That(contextDocument, Is.Not.Null);
            Assert.That(contextDocument.DocumentAuthors, Is.Not.Null);
            Assert.That(contextDocument.DocumentAuthors.Count, Is.EqualTo(1));
            Assert.That(contextDocument.DocumentAuthors.Contains(documentAuthorMock), Is.True);
        }
Ejemplo n.º 9
0
 /// <summary>
 /// Creates an instance of the ContextDocument using the XmlReader instance provided.
 /// </summary>
 /// <param name="reader">The XmlReader used to read the Xml document.</param>
 /// <param name="schemaVersion">The versoin of the schema used to validate the document.</param>
 /// <param name="access">The access to the document (read-write/read-only)</param>
 /// <returns>An instance of a ContextDocument.</returns>
 public static ContextDocumentReadWrite LoadContextDocument(XmlReader reader, XacmlVersion schemaVersion, DocumentAccess access)
 {
     return(ContextDocument.Create(reader, schemaVersion, access));
 }