예제 #1
0
        public void InvalidElementTest()
        {
            var particle = new ElementParticle(typeof(T1), 0, 1)
                           .Compile();
            var data = new TestOpenXmlCompositeElement();

            Assert.False(particle.Set(data, new T2()));
            Assert.Null(particle.Get <T2>(data));
        }
예제 #2
0
        public void ElementTest()
        {
            var particle = new ElementParticle(typeof(T1), 0, 1)
                           .Compile();
            var data     = new TestOpenXmlCompositeElement();
            var instance = new T1();

            Assert.True(particle.Set(data, instance));
            Assert.Equal(instance, particle.Get <T1>(data));
        }
예제 #3
0
        private void Visit(ElementParticle element)
        {
            var newValues = new ParticlePathItem[_values.Count];

            _values.CopyTo(newValues, 0);
            Array.Reverse(newValues);

            var particlePath = ParticlePath.Create(newValues);

            _path.Add(new LookupItem(element.ElementType, particlePath));
        }
        private void TextboxConstraintTest(SdbSchemaDatas actual)
        {
            //<xsd:complexType name="CT_Textbox">
            //  <xsd:choice>
            //    <xsd:element ref="w:txbxContent" minOccurs="0" />
            //    <xsd:any namespace="##local" processContents="skip" />
            //  </xsd:choice>
            //  <xsd:attributeGroup ref="AG_Id" />
            //  <xsd:attributeGroup ref="AG_Style" />
            //  <xsd:attribute name="inset" type="xsd:string" use="optional">
            //  <xsd:attribute ref="o:singleclick">
            //</xsd:complexType>

            var constraintData = actual.GetSchemaTypeData(DocumentFormat.OpenXml.Vml.TextBox.ElementTypeIdConst);

            Assert.Equal(DocumentFormat.OpenXml.Vml.TextBox.ElementTypeIdConst, constraintData.OpenXmlTypeId);
            Assert.True(constraintData.HasAttributeConstraints);
            Assert.Equal(4, constraintData.AttributeConstraintsCount);
            Assert.Null(constraintData.SimpleTypeConstraint);
            Assert.True(constraintData.IsCompositeType);
            Assert.False(constraintData.IsSimpleContent);

            var particle = constraintData.ParticleConstraint;

            Assert.Equal(ParticleType.Choice, particle.ParticleType);
            Assert.Equal(1, particle.MinOccurs);
            Assert.Equal(1, particle.MaxOccurs);
            Assert.Equal(2, particle.ChildrenParticles.Length);
            Assert.False(particle.UnboundedMaxOccurs);
            Assert.False(particle.IsSimple());
            {
                ElementParticle elementParticle = particle.ChildrenParticles[0] as ElementParticle;
                Assert.Equal(ParticleType.Element, elementParticle.ParticleType);
                Assert.Equal(0, elementParticle.MinOccurs);
                Assert.False(elementParticle.UnboundedMaxOccurs);
                Assert.Equal(1, elementParticle.MaxOccurs);
                Assert.Null(elementParticle.ChildrenParticles);
                Assert.True(elementParticle.IsSimple());

                AnyParticle anyParticle = particle.ChildrenParticles[1] as AnyParticle;
                Assert.Equal(ParticleType.Any, anyParticle.ParticleType);
                Assert.Equal(1, anyParticle.MinOccurs);
                Assert.False(anyParticle.UnboundedMaxOccurs);
                Assert.Equal(1, anyParticle.MaxOccurs);
                Assert.Null(anyParticle.ChildrenParticles);
                Assert.True(anyParticle.IsSimple());
            }
        }
예제 #5
0
        public void ElementParticleBuildSame(FileFormatVersions version)
        {
            var particle = new ElementParticle(typeof(ParticleTests), 1, 1);

            Assert.Same(particle, particle.Build(version));
        }