コード例 #1
0
        /// <summary>
        /// Simply return the Identity from the XML string representation.
        /// </summary>
        /// <returns>The next SIF Event; null if there are parsing errors with the message.</returns>
        public SifEvent <Identity> GetNextEvent()
        {
            SifEvent <Identity> sifEvent = null;

            try
            {
                Identity identity = (Identity)sifParser.Parse(messages[eventMessageCount]);
                if (log.IsDebugEnabled)
                {
                    log.Debug("Next Identity event record:\n" + identity.ToXml());
                }
                sifEvent = new SifEvent <Identity>(identity, EventAction.Change);
            }
            catch (AdkParsingException e)
            {
                if (log.IsWarnEnabled)
                {
                    log.Warn("The following event message from IdentityIterator has been ignored due to parsing errors: " + messages[eventMessageCount] + ".", e);
                }
            }
            finally
            {
                eventMessageCount++;
            }

            return(sifEvent);
        }
コード例 #2
0
        /// <summary>
        /// Simply return the SchoolInfo from the XML string representation.
        /// </summary>
        /// <returns>The next SIF Event; null if there are parsing errors with the message.</returns>
        public SifEvent <SchoolInfo> GetNextEvent()
        {
            SifEvent <SchoolInfo> sifEvent = null;

            try
            {
                SchoolInfo schoolInfo = (SchoolInfo)sifParser.Parse(messages[eventMessageCount]);
                if (log.IsDebugEnabled)
                {
                    log.Debug("Next SchoolInfo event record:\n" + schoolInfo.ToXml());
                }
                sifEvent = new SifEvent <SchoolInfo>(schoolInfo, EventAction.Change);
            }
            catch (AdkParsingException e)
            {
                if (log.IsWarnEnabled)
                {
                    log.Warn("The following event message from SchoolInfoIterator has been ignored due to parsing errors: " + messages[eventMessageCount] + ".", e);
                }
            }
            finally
            {
                eventMessageCount++;
            }

            return(sifEvent);
        }
コード例 #3
0
        /// <summary>
        /// Simply return the StaffPersonal from the XML string representation.
        /// </summary>
        /// <returns>The next SIF Event; null if there are parsing errors with the message.</returns>
        public SifEvent <StaffPersonal> GetNextEvent()
        {
            SifEvent <StaffPersonal> sifEvent = null;

            try
            {
                StaffPersonal staffPersonal = (StaffPersonal)sifParser.Parse(messages[eventMessageCount]);
                if (log.IsDebugEnabled)
                {
                    log.Debug("Next StaffPersonal event record:\n" + staffPersonal.ToXml());
                }
                sifEvent = new SifEvent <StaffPersonal>(staffPersonal, EventAction.Change);
            }
            catch (AdkParsingException e)
            {
                if (log.IsWarnEnabled)
                {
                    log.Warn("The following event message from StaffPersonalIterator has been ignored due to parsing errors: " + messages[eventMessageCount] + ".", e);
                }
            }
            finally
            {
                eventMessageCount++;
            }

            return(sifEvent);
        }
コード例 #4
0
        public void testComplexAndQuery()
        {
            String sifQuery = "<SIF_Request><SIF_Query>" +
                              "    <SIF_QueryObject ObjectName=\"StudentSchoolEnrollment\"/>" +
                              "    <SIF_ConditionGroup Type=\"None\">" +
                              "           <SIF_Conditions Type=\"And\">" +
                              "             <SIF_Condition>" +
                              "                 <SIF_Element>@MembershipType</SIF_Element>" +
                              "                 <SIF_Operator>EQ</SIF_Operator>" +
                              "                 <SIF_Value>Home</SIF_Value>" +
                              "              </SIF_Condition>" +
                              "              <SIF_Condition>" +
                              "                 <SIF_Element>@RefId</SIF_Element>" +
                              "                 <SIF_Operator>EQ</SIF_Operator>" +
                              "                 <SIF_Value>49B02D134D6D445DA7B5C76160BF3902</SIF_Value>" +
                              "              </SIF_Condition>" +
                              "              <SIF_Condition>" +
                              "                 <SIF_Element>@SchoolInfoRefId</SIF_Element>" +
                              "                 <SIF_Operator>EQ</SIF_Operator>" +
                              "                 <SIF_Value>EF8850D522E54688B036B08F9C4C1312</SIF_Value>" +
                              "              </SIF_Condition>" +
                              "              <SIF_Condition>" +
                              "                 <SIF_Element>@SchoolYear</SIF_Element>" +
                              "                 <SIF_Operator>EQ</SIF_Operator>" +
                              "                 <SIF_Value>2006</SIF_Value>" +
                              "              </SIF_Condition>" +
                              "              <SIF_Condition>" +
                              "                 <SIF_Element>@StudentPersonalRefId</SIF_Element>" +
                              "                 <SIF_Operator>EQ</SIF_Operator>" +
                              "                 <SIF_Value>1AA295D3BC5146FA9058BB62FB6CC602</SIF_Value>" +
                              "              </SIF_Condition>" +
                              "              <SIF_Condition>" +
                              "                 <SIF_Element>@TimeFrame</SIF_Element>" +
                              "                 <SIF_Operator>EQ</SIF_Operator>" +
                              "                 <SIF_Value>Historical</SIF_Value>" +
                              "              </SIF_Condition>" +
                              "              <SIF_Condition>" +
                              "                <SIF_Element>EntryDate</SIF_Element>" +
                              "                 <SIF_Operator>EQ</SIF_Operator>" +
                              "                 <SIF_Value>2005-08-28</SIF_Value>" +
                              "              </SIF_Condition>" +
                              "           </SIF_Conditions>" +
                              "        </SIF_ConditionGroup>" +
                              "     </SIF_Query></SIF_Request>";


            SifParser   parser = SifParser.NewInstance();
            SIF_Request sifR   = (SIF_Request)parser.Parse(sifQuery, null, 0, SifVersion.LATEST);
            Query       query  = new Query(sifR.SIF_Query);

            String sse =
                "<StudentSchoolEnrollment RefId=\"49B02D134D6D445DA7B5C76160BF3902\" StudentPersonalRefId=\"1AA295D3BC5146FA9058BB62FB6CC602\" SchoolInfoRefId=\"EF8850D522E54688B036B08F9C4C1312\" MembershipType=\"Home\" TimeFrame=\"Historical\" SchoolYear=\"2006\">" +
                "<EntryDate>2005-08-28</EntryDate>" +
                "</StudentSchoolEnrollment>";

            SifDataObject sdo = (SifDataObject)parser.Parse(sse, null, 0, SifVersion.SIF20r1);

            Assert.IsTrue(query.Evaluate(sdo));
        }
コード例 #5
0
        public void TestxsiNill_SDOObjectXML()
        {
            LearnerPersonal lp = new LearnerPersonal();

            // Add a null UPN
            SifString str = new SifString(null);

            lp.SetField(LearnerDTD.LEARNERPERSONAL_UPN, str);

            // Add a null AlertMsg
            AlertMsg msg = new AlertMsg(AlertMsgType.DISCIPLINE, null);

            lp.AlertMsgList = new AlertMsgList(msg);
            msg.SetField(CommonDTD.ALERTMSG, new SifString(null));



            //  Write the object to a file
            Console.WriteLine("Writing to file...");
            using (Stream fos = File.Open("SifWriterTest.Temp.xml", FileMode.Create, FileAccess.Write))
            {
                SifWriter writer = new SifWriter(fos);
                lp.SetChanged(true);
                writer.Write(lp);
                writer.Flush();
                fos.Close();
            }

            //  Parse the object from the file
            Console.WriteLine("Parsing from file...");
            SifParser p = SifParser.NewInstance();

            using (Stream fis = File.OpenRead("SifWriterTest.Temp.xml"))
            {
                lp = (LearnerPersonal)p.Parse(fis, null);
            }


            SimpleField upn = lp.GetField(LearnerDTD.LEARNERPERSONAL_UPN);

            Assert.IsNotNull(upn);

            SifString rawValue = (SifString)upn.SifValue;

            Assert.IsNotNull(rawValue);
            Assert.IsNull(rawValue.Value);
            Assert.IsNull(upn.Value);

            AlertMsgList alertMsgs = lp.AlertMsgList;

            Assert.IsNotNull(alertMsgs);
            Assert.IsTrue(alertMsgs.Count == 1);
            msg = (AlertMsg)alertMsgs.GetChildList()[0];

            Assert.IsNull(msg.Value);
            SifSimpleType msgValue = msg.SifValue;

            Assert.IsNotNull(msgValue);
            Assert.IsNull(msgValue.RawValue);
        }
コード例 #6
0
        private void AssertMessageStreamer(MessageStreamer streamer, SifVersion version)
        {
            long         length = streamer.Length;
            MemoryStream ms     = new MemoryStream();

            streamer.CopyTo(ms);

            // Copy to a string for debugging purposes
            Console.WriteLine("********************************************************************");
            string data = Encoding.UTF8.GetString(ms.ToArray());

            Console.WriteLine("RawLength:{0}, Text Length:{1}", ms.Length, data.Length);
            Console.WriteLine(data);

            Assert.AreEqual(length, ms.Length, "Length property and final length are not the same.");


            // Try parsing the final stream to see if it is a valid message
            SifParser parser = SifParser.NewInstance();

            ms.Seek(0, SeekOrigin.Begin);
            StreamReader reader = new StreamReader(ms);
            SifElement   o      = parser.Parse(reader, null, SifParserFlags.None, version);

            Assert.IsNotNull(o);
        }
コード例 #7
0
        public void TestXsiNill_AllChildrenNil()
        {
            SchoolInfo            si   = new SchoolInfo();
            AddressableObjectName paon = new AddressableObjectName( );

            paon.Description = "The little white school house";
            paon.StartNumber = "321";
            Address      addr = new Address(AddressType.CURRENT, paon);
            GridLocation gl   = new GridLocation();

            gl.SetField(CommonDTD.GRIDLOCATION_PROPERTYEASTING, new SifDecimal(null));
            gl.SetField(CommonDTD.GRIDLOCATION_PROPERTYNORTHING, new SifDecimal(null));
            addr.GridLocation = gl;

            si.AddressList = new AddressList(addr);


            //  Write the object to a file
            Console.WriteLine("Writing to file...");
            using (Stream fos = File.Open("SifWriterTest.Temp.xml", FileMode.Create, FileAccess.Write))
            {
                SifWriter writer = new SifWriter(fos);
                si.SetChanged(true);
                writer.Write(si);
                writer.Flush();
                fos.Close();
            }

            //  Parse the object from the file
            Console.WriteLine("Parsing from file...");
            SifParser p = SifParser.NewInstance();

            using (Stream fis = File.OpenRead("SifWriterTest.Temp.xml"))
            {
                si = (SchoolInfo)p.Parse(fis, null);
            }


            AddressList al = si.AddressList;

            Assert.IsNotNull(al);

            addr = al.ItemAt(0);
            Assert.IsNotNull(addr);

            gl = addr.GridLocation;
            Assert.IsNotNull(gl);

            Assert.IsNull(gl.PropertyEasting);
            Assert.IsNull(gl.PropertyNorthing);

            SimpleField sf = gl.GetField(CommonDTD.GRIDLOCATION_PROPERTYEASTING);

            Assert.IsNotNull(sf);
            Assert.IsNull(sf.Value);

            sf = gl.GetField(CommonDTD.GRIDLOCATION_PROPERTYNORTHING);
            Assert.IsNotNull(sf);
            Assert.IsNull(sf.Value);
        }
コード例 #8
0
        /// <summary>
        /// Create an instance using the Agent configuration file.
        /// </summary>
        /// <param name="agentConfig">Configuration file for the SIF Agent.</param>
        /// <exception cref="System.ArgumentException">agentConfig parameter is null.</exception>
        /// <exception cref="Systemic.Sif.Framework.Publisher.IteratorException">Error parsing student details from the Agent configuration file.</exception>
        public StudentPersonalIterator(AgentConfig agentConfig)
        {
            if (agentConfig == null)
            {
                throw new ArgumentException("agentConfig parameter is null.");
            }

            Mappings mappings = agentConfig.Mappings.GetMappings("Default");

            if (mappings == null)
            {
                throw new IteratorException("<mappings id=\"Default\"> has not been specified for Agent " + agentConfig.SourceId + ".");
            }

            objectMapping = mappings.GetObjectMapping(typeof(StudentPersonal).Name, true);

            if (objectMapping == null)
            {
                throw new IteratorException("An object mapping for StudentPersonal has not been specified for Agent " + agentConfig.SourceId + ".");
            }

            string      xml        = objectMapping.XmlElement.InnerXml;
            IElementDef elementDef = Adk.Dtd.LookupElementDef(objectMapping.ObjectType);

            try
            {
                studentPersonal = (StudentPersonal)sifParser.Parse(xml);
            }
            catch (AdkParsingException e)
            {
                throw new IteratorException("The following event message from StudentPersonalIterator has parsing errors: " + xml + ".", e);
            }
        }
コード例 #9
0
        public static T WriteParseAndReturn<T>(T o, SifVersion version, SchemaValidator validator, bool echoOut)
            where T : SifElement
        {
            T returnVal;

            if ( o is SifMessagePayload )
            {
                o.SifVersion = version;
            }


            SifWriter echo = null;
            if ( echoOut )
            {
                //   Write the object to System.out
                Console.WriteLine( "Writing object : " + o.ElementDef.Name + " using SIFVersion: " + version.ToString() );

                echo = new SifWriter( Console.Out );
                echo.Write( o, version );
            }

            //  Write the object to a file
            Console.WriteLine( "Writing to file... test.xml" );

            using ( Stream fos = File.Open( "test.xml", FileMode.Create, FileAccess.Write ) )
            {
                SifWriter writer = new SifWriter( fos );
                writer.Write( o, version  );
                writer.Flush();
                writer.Close();
                fos.Close();
            }


            if ( validator != null )
            {
                Validate( "test.xml", validator );
            }

            //  Parse the object from the file
            Console.WriteLine( "Parsing from file..." );
            SifParser p = SifParser.NewInstance();
            using ( Stream fis = File.OpenRead( "test.xml" ) )
            {
                returnVal = (T) p.Parse( fis, null );
                fis.Close();
            }


            //  Write the parsed object to System.out
            returnVal.SetChanged( true );
            Console.WriteLine( "Read object : " + returnVal.ElementDef.Name );
            if ( echoOut )
            {
                echo.Write( returnVal, version );
                echo.Flush();
            }
             
            return returnVal;
        }
コード例 #10
0
        /**
         * Test SIF Query Pattern support in the ADK
         *
         * @param objectDef
         *            The IElementDef representing the root SIF Object
         * @param def
         *            The IElementDef representing the field being queried (e.g.
         *            CommonDTD.NAME_FIRSTNAME)
         * @param sqp
         *            The expected SIF Query Pattern (e.g. "Name/FirstName") for the
         *            above field def
         * @param version
         *            The version of SIF to test
         */

        private Query testSQP(IElementDef objectDef, IElementDef def, String sqp,
                              SifVersion version)
        {
            Adk.SifVersion = version;
            IElementDef lookedUp = Adk.Dtd.LookupElementDefBySQP(objectDef, sqp);

            Assert.AreEqual(def.Name, lookedUp.Name, "IElementDef");
            testResolveBySQP(objectDef, sqp, version, def);

            Query q = new Query(objectDef);

            q.AddCondition(def, ComparisonOperators.EQ, "foo");

            String sifQueryXML = q.ToXml();

            Console.WriteLine(sifQueryXML);

            String searchFor = "<SIF_Element>" + sqp + "</SIF_Element>";

            Assert.IsTrue(sifQueryXML.Contains(searchFor), "SQP in XML");

            SifParser   parser = SifParser.NewInstance();
            SIF_Request sifR   = (SIF_Request)parser.Parse("<SIF_Request>"
                                                           + sifQueryXML + "</SIF_Request>", null);

            Query newQuery = new Query(sifR.SIF_Query);

            Condition cond = newQuery.HasCondition(sqp);

            Assert.IsNotNull(cond, "hasCondition");
            Assert.AreEqual(sqp, cond.GetXPath(), "SQP");
            Assert.AreEqual(def, cond.Field, "IElementDef");

            return(newQuery);
        }
コード例 #11
0
        private Query testResolveBySQP(IElementDef objectDef, String sqp,
                                       SifVersion version, IElementDef resolvedNestedElement)
        {
            Adk.SifVersion = version;

            Query q = new Query(objectDef);

            q.AddCondition(sqp, ComparisonOperators.EQ, "foo");
            String sifQueryXML = q.ToXml();

            Console.WriteLine(sifQueryXML);

            String searchFor = "<SIF_Element>" + sqp + "</SIF_Element>";

            // The .Net ADK doesn't encode apostrophes when they are in
            // element content, so the following line is different than
            // the java test
            //searchFor = searchFor.Replace( "'", "&apos;" );
            Assert.IsTrue(sifQueryXML.Contains(searchFor), "SQP in XML");

            SifParser   parser = SifParser.NewInstance();
            SIF_Request sifR   = (SIF_Request)parser.Parse("<SIF_Request>"
                                                           + sifQueryXML + "</SIF_Request>", null);

            Query newQuery = new Query(sifR.SIF_Query);

            Condition cond = newQuery.HasCondition(sqp);

            Assert.IsNotNull(cond, "hasCondition");
            Assert.AreEqual(sqp, cond.GetXPath(), "SQP");
            Assert.AreEqual(sqp, cond.GetXPath(newQuery,
                                               version), "Version-Specific SQP");

            return(newQuery);
        }
コード例 #12
0
 public static SifElement ParseFile( String fileName, SifVersion parseVersion )
 {
     SifElement se;
     SifParser parser = SifParser.NewInstance();
     using ( StreamReader fileStream = new StreamReader( fileName ) )
     {
         se = parser.Parse( fileStream, null, 0, parseVersion );
         fileStream.Close();
     }
     return se;
 }
コード例 #13
0
        public static T CreateFromXml(string xml)
        {
            if (String.IsNullOrEmpty(xml))
            {
                throw new ArgumentException("xml parameter is null or empty.", "xml");
            }

            SifParser sifParser = SifParser.NewInstance();

            return((T)sifParser.Parse(xml));
        }
コード例 #14
0
        public static void RunSDOParsingTest( String fileName, SifVersion version, Boolean runAssertions )
        {
            //  Parse the object from the file
            Console.WriteLine( "Parsing from file..." + fileName );
            SifParser p = SifParser.NewInstance();
            StreamReader reader = new StreamReader( fileName );
            SifDataObject sdo = (SifDataObject) p.Parse( reader, null );
            reader.Close();

            Assert.IsNull( sdo );
            runParsingTest<SifDataObject>( sdo, version );
        }
コード例 #15
0
        public static Query SaveToXMLAndReparse(Query query, SifVersion version)
        {
            String sifQueryXML = query.ToXml(version);

            Console.WriteLine(sifQueryXML);

            SifParser   parser = SifParser.NewInstance();
            SIF_Request sifR   = (SIF_Request)parser.Parse("<SIF_Request>" + sifQueryXML + "</SIF_Request>", null);

            Query newQuery = new Query(sifR.SIF_Query);

            return(newQuery);
        }
コード例 #16
0
 public void UnexpectedEmbeddedSIFMessage()
 {
     // this test should throw an exception because we are not passing "ExpectInnerEnvelope" in the
     // parser flags
     using (Stream aStream = GetResourceStream("GetNextMessageResponse.xml"))
     {
         TextReader aReader = new StreamReader(aStream);
         SifParser  parser  = SifParser.NewInstance();
         SifElement element = parser.Parse(aReader, null, SifParserFlags.None, SifVersion.SIF11);
         aReader.Close();
         aStream.Close();
     }
 }
コード例 #17
0
        public void ParsingSIFTime()
        {
            SifElement element = null;

            using (Stream aStream = GetResourceStream("LibraryPatronStatus.xml"))
            {
                SifParser parser = SifParser.NewInstance();
                element = parser.Parse(aStream, null);
                aStream.Close();
            }

            Assert.IsNotNull(element, "SIFElement was not parsed");
        }
コード例 #18
0
        public void ParsingSectionInfo()
        {
            SifElement element = null;

            using (Stream aStream = GetResourceStream("SectionInfo_SchoolCourseInfoOverride.xml"))
            {
                SifParser parser = SifParser.NewInstance();
                element = parser.Parse(aStream, null);
                aStream.Close();
            }

            Assert.IsNotNull(element, "SIFElement was not parsed");
        }
コード例 #19
0
        public void testParseFieldRestrictions020()
        {
            String filteredRequest =
                "<SIF_Message xmlns=\"http://www.sifinfo.org/infrastructure/2.x\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" Version=\"2.0r1\">" +
                "<SIF_Request>" +
                "   <SIF_Header>" +
                "      <SIF_MsgId>EC357ED020F811DD9039FE9AB6D9D924</SIF_MsgId>" +
                "      <SIF_Timestamp>2008-05-13T10:28:57.789-05:00</SIF_Timestamp>" +
                "      <SIF_SourceId>DDD7112020E211DD9039DFD0562B2BED</SIF_SourceId>" +
                "      <SIF_DestinationId>Classroll Agent</SIF_DestinationId>" +
                "   </SIF_Header>" +
                "   <SIF_Version>2.*</SIF_Version>" +
                "   <SIF_MaxBufferSize>11984</SIF_MaxBufferSize>" +
                "   <SIF_Query>" +
                "      <SIF_QueryObject ObjectName=\"SectionInfo\">" +
                "         <SIF_Element>@RefId</SIF_Element>" +
                "         <SIF_Element>@SchoolCourseInfoRefId</SIF_Element>" +
                "         <SIF_Element>@SchoolYear</SIF_Element>" +
                "         <SIF_Element>LocalId</SIF_Element>" +
                "         <SIF_Element>ScheduleInfoList/ScheduleInfo/@TermInfoRefId</SIF_Element>" +
                "         <SIF_Element>Description</SIF_Element>" +
                "         <SIF_Element>LanguageOfInstruction</SIF_Element>" +
                "         <SIF_Element>LanguageOfInstruction/Code</SIF_Element>" +
                "      </SIF_QueryObject>" +
                "   </SIF_Query>" +
                "</SIF_Request>" +
                "</SIF_Message>";


            SifParser   parser  = SifParser.NewInstance();
            SIF_Request request = (SIF_Request)parser.Parse(filteredRequest, null, 0, SifVersion.LATEST);
            Query       query   = new Query(request.SIF_Query);

            // Assert things about the query
            Assert.AreEqual(StudentDTD.SECTIONINFO, query.ObjectType);
            Assert.AreEqual("SectionInfo", query.ObjectTag);
            IElementDef[] elements = query.FieldRestrictions;

            Assert.IsNotNull(elements);
            Assert.AreEqual(8, elements.Length);

            // Attempt reparsing and then re-asserting:
            query = SaveToXMLAndReparse(query, SifVersion.LATEST);
            // Assert things about the query
            Assert.AreEqual(StudentDTD.SECTIONINFO, query.ObjectType);
            Assert.AreEqual("SectionInfo", query.ObjectTag);
            elements = query.FieldRestrictions;

            Assert.IsNotNull(elements);
            Assert.AreEqual(8, elements.Length);
        }
コード例 #20
0
        public void testReturningCorrectSifVersionSIF1x()
        {
            String test =
                "<SIF_Request xmlns=\"http://www.sifinfo.org/infrastructure/1.x\">" +
                "	<SIF_Query >"+
                "      <SIF_QueryObject ObjectName=\"SchoolInfo\" />" +
                "	</SIF_Query>"+
                "</SIF_Request>";

            SifParser  parser  = SifParser.NewInstance();
            SifElement element = parser.Parse(test, null);

            // Since the version was not passed in, the latest supported
            // SIF 2.x Version should be returned
            Assertion.AssertEquals(SifVersion.GetLatest(1), element.SifVersion);

            element = parser.Parse(test, null, 0, SifVersion.SIF11);
            // Since the version was passed in, 1.1 should be returned
            Assertion.AssertEquals(SifVersion.SIF11, element.SifVersion);

            test =
                "<SIF_Message Version=\"1.1\" xmlns=\"http://www.sifinfo.org/infrastructure/1.x\">" +
                "<SIF_Request>" +
                "	<SIF_Query >"+
                "      <SIF_QueryObject ObjectName=\"SchoolInfo\" />" +
                "	</SIF_Query>"+
                "</SIF_Request>" +
                "</SIF_Message>";

            element = parser.Parse(test, null);
            // The version attribute is specified, use it.
            Assertion.AssertEquals(SifVersion.SIF11, element.SifVersion);

            element = parser.Parse(test, null, 0, SifVersion.SIF15r1);
            // The version attribute is specified and should override the
            // version passed in
            Assertion.AssertEquals(SifVersion.SIF11, element.SifVersion);
        }
コード例 #21
0
        public void TestParseComplexTypes()
        {
            Adk.Initialize();
            Adk.SifVersion = SifVersion.SIF15r1;
            SifParser p        = SifParser.NewInstance();
            Activity  activity = new Activity();

            activity = (Activity)p.Parse(
                "<Activity RefId='0E3915409C3611DABE9FE16E3CD135F2' xml:lang='en'><Title>Activity 0E3915409C3611DABE9FE16E3CD135F2</Title><ActivityTime><CreationDate>20041016</CreationDate></ActivityTime></Activity>"
                , null);
            Assert.IsNotNull(activity, "Activity is null");
            Assert.AreEqual(activity.Title, "Activity 0E3915409C3611DABE9FE16E3CD135F2", "activity.Title is incorrect");
            Assert.AreEqual(DateTime.Parse(activity.ActivityTime.CreationDate.ToString()).ToString("yyyyMMdd"), "20041016", "activity.ActivityTime.CreationDate is incorrect");
        }//end TestParseComplexTypes
コード例 #22
0
        public void TestLooseXmlTypeParsing100()
        {
            string vendorInfo15r1 =
                @"<VendorInfo RefId='F138FF5017DC11DBAC45A0329DB3F005'>
                               <VendorName>Kleinman &amp; Co.</VendorName>
                               <Send1099 Code='XXX' />
                             </VendorInfo>";

            SifParser  parser = SifParser.NewInstance();
            VendorInfo vi     = (VendorInfo)parser.Parse(vendorInfo15r1, null, SifParserFlags.None, SifVersion.SIF15r1);

            Assert.IsNotNull(vi);
            Assert.IsFalse(vi.Send1099.HasValue);
        }
コード例 #23
0
        public void PerfTestParsing5000Times()
        {
            // Do one warmup parse . . .

            SifElement element = null;

            using (Stream aStream = this.GetType().Assembly.GetManifestResourceStream(AdkTest.RESOURCE_ROOT + "StudentPersonalResponse_AddForDelete.xml"))
            {
                SifParser parser = new SifParser();
                // Do one warmup parse . . .
                TextReader aReader = new StreamReader(aStream);
                element = parser.Parse(aReader, null, SifParserFlags.None, SifVersion.SIF11);

                for (int a = 0; a < 5000; a++)
                {
                    aStream.Seek(0, SeekOrigin.Begin);
                    element = parser.Parse(aStream, null, SifParserFlags.None);
                }
                aStream.Close();
            }

            Assert.IsNotNull(element, "SIFElement was not parsed");
        }
コード例 #24
0
        public void SIFMessageParse()
        {
            SifElement element = null;

            using (Stream aStream = GetResourceStream("StudentPersonalResponse_AddForDelete.xml"))
            {
                TextReader aReader = new StreamReader(aStream);
                SifParser  parser  = SifParser.NewInstance();
                element = parser.Parse(aReader, null, SifParserFlags.None, SifVersion.SIF11);
                aReader.Close();
                aStream.Close();
            }

            Assert.IsNotNull(element, "SIFElement was not parsed");
        }
コード例 #25
0
        public void SimpleObjectParse()
        {
            SifElement element = null;

            using (Stream aStream = GetResourceStream("SchoolInfo.xml"))
            {
                TextReader aReader = new StreamReader(aStream, Encoding.UTF8);
                SifParser  parser  = SifParser.NewInstance();
                element = parser.Parse(aReader, null, SifParserFlags.None, SifVersion.SIF11);
                aReader.Close();
                aStream.Close();
            }

            Assert.IsNotNull(element, "SIFElement was not parsed");
        }
コード例 #26
0
        public void testReturningCorrectSifVersionDefault()
        {
            String test =
                "<SIF_Request>" +
                "	<SIF_Query >"+
                "      <SIF_QueryObject ObjectName=\"SchoolInfo\" />" +
                "	</SIF_Query>"+
                "</SIF_Request>";

            SifParser  parser  = SifParser.NewInstance();
            SifElement element = parser.Parse(test, null);

            // Since the version was not passed in, the ADK SIF Version should be returned
            Assertion.AssertEquals(Adk.SifVersion, element.SifVersion);
        }
コード例 #27
0
        public static SifDataObject WriteParseAndReturn(SifDataObject o,
                                                        SifVersion version)
        {
            SifDataObject returnVal = null;

            try
            {
                //  Write the object to System.out
                Console.WriteLine("Writing object : " + o.ObjectTag
                                  + " using SifVersion: " + version.ToString());
                SifWriter echo = new SifWriter(Console.Out);
                echo.Write(o, version);
                o.SetChanged(false);
                echo.Write(o);

                //  Write the object to a file
                Console.WriteLine("Writing to file...");
                using (Stream fos = File.Open("test.xml", FileMode.Create, FileAccess.Write))
                {
                    SifWriter writer = new SifWriter(fos);
                    o.SetChanged(true);
                    writer.Write(o, version);
                    writer.Flush();
                    fos.Close();
                }

                //  Parse the object from the file
                Console.WriteLine("Parsing from file...");
                SifParser p = SifParser.NewInstance();
                using (Stream fis = File.OpenRead("test.xml"))
                {
                    returnVal = (SifDataObject)p.Parse(fis, null);
                }


                //  Write the parsed object to System.out
                returnVal.SetChanged(true);
                Console.WriteLine("Read object : " + returnVal.ObjectTag);
                echo.Write(returnVal, version);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Assert.Fail("Exception: " + e.Message);
            }

            return(returnVal);
        }
コード例 #28
0
        private void ParseSingleSDOObjectFromFile(string fileName)
        {
            //  Parse the object from the file
            Console.WriteLine("Parsing from file...");
            SifParser     p         = SifParser.NewInstance();
            SifDataObject sifObject = null;

            using (Stream inStream = GetResourceStream(fileName))
            {
                sifObject = (SifDataObject)p.Parse(inStream, null, SifParserFlags.None, SifVersion.SIF15r1);
                inStream.Close();
            }

            Assert.IsNotNull(sifObject);
            AdkObjectParseHelper.runParsingTest(sifObject, SifVersion.SIF15r1);
        }
コード例 #29
0
        public void ParseSectionInfoWithOverride()
        {
            //  Parse the object from the file
            Console.WriteLine("Parsing from file...");
            SifParser p        = SifParser.NewInstance();
            SIF_Event sifEvent = null;

            using (Stream inStream = GetResourceStream("SectionInfo_SchoolCourseInfoOverride.xml"))
            {
                sifEvent = (SIF_Event)p.Parse(inStream, null, SifParserFlags.None, SifVersion.SIF15r1);
                inStream.Close();
            }

            Assert.IsNotNull(sifEvent);
            AdkObjectParseHelper.runParsingTest((SifDataObject)sifEvent.SIF_ObjectData.SIF_EventObject.GetChildList()[0], SifVersion.SIF15r1);
        }
コード例 #30
0
        public void ParseSIF_LogEntry2()
        {
            // This test attempts to parse SIF_LogEntry,
            Console.WriteLine("Parsing from file...");
            SifParser p      = SifParser.NewInstance();
            SIF_Ack   logMsg = null;

            using (Stream inStream = GetResourceStream("SIF_LogEntry2.xml"))
            {
                logMsg = (SIF_Ack)p.Parse(inStream, null, SifParserFlags.ExpectInnerEnvelope, SifVersion.SIF20r1);
                inStream.Close();
            }

            Assert.IsNotNull(logMsg);
            //AdkObjectParseHelper.runParsingTest( logMsg );
        }