示例#1
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);
        }
示例#2
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);
        }
示例#3
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);
        }
示例#4
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);
        }
示例#5
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;
        }
示例#6
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);
        }
示例#7
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));
        }
示例#8
0
 /// <summary>  Constructor.
 ///
 /// </summary>
 /// <param name="zone">The zone
 ///
 /// </param>
 /// <param name="source">Identifies the source of pending SIF_Response packets to
 /// be processed: <c>RSPTYPE_GENERIC</c> to process files in the default
 /// 'responses' directory, or <c>RSPTYPE_SIFREPORTOBJECT</c> to process
 /// SIF_ReportObject files in the 'responses/reports' directory
 /// </param>
 public ResponseDelivery(IZone zone,
                         ResponseDeliveryType source)
 {
     fZone    = (ZoneImpl)zone;
     fParser  = SifParser.NewInstance();
     fSrc     = source;
     fWorkDir = GetSourceDirectory(source, fZone);
 }
示例#9
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;
 }
示例#10
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));
        }
示例#11
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 );
        }
示例#12
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");
        }
示例#13
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");
        }
示例#14
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);
        }
示例#15
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();
     }
 }
示例#16
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);
        }
示例#17
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);
        }
示例#18
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
示例#19
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");
        }
示例#20
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");
        }
示例#21
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);
        }
        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);
        }
示例#23
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);
        }
示例#24
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);
        }
示例#25
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 );
        }
示例#26
0
        public void ParseSIF_LogEntry()
        {
            // This test attempts to parse SIF_LogEntry,
            Console.WriteLine("Parsing from file...");
            SifParser    p      = SifParser.NewInstance();
            SIF_LogEntry logMsg = null;

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

            Assert.IsNotNull(logMsg);
            AdkObjectParseHelper.runParsingTest(logMsg, SifVersion.LATEST);
        }
示例#27
0
        public void ParseLibraryPatronStatus()
        {
            // This test attempts to parse LibraryPatronStatus, which had a problem with parsing
            // Child elements that were SIFTime
            //	  Parse the object from the file
            Console.WriteLine("Parsing from file...");
            SifParser    p   = SifParser.NewInstance();
            SIF_Response msg = null;

            using (Stream inStream = GetResourceStream("LibraryPatronStatus.xml"))
            {
                msg = (SIF_Response)p.Parse(inStream, null);
                inStream.Close();
            }

            Assert.IsNotNull(msg);
            AdkObjectParseHelper.runParsingTest((SifDataObject)msg.SIF_ObjectData.GetChildList()[0], SifVersion.SIF15r1);
        }
示例#28
0
        public void testParseFieldRestrictions()
        {
            String filteredRequest = "<SIF_Request>" +
                                     " <SIF_Header>" +
                                     "	 <SIF_MsgId>D59CE61000D011DDB8D4E57E5F08151C</SIF_MsgId>"+
                                     "	 <SIF_Timestamp>2008-04-02T12:21:22.801-05:00</SIF_Timestamp>"+
                                     "	 <SIF_SourceId>318D14F000D011DDB8D4AE35C22E84E0</SIF_SourceId>"+
                                     "	 <SIF_DestinationId>SASIxp</SIF_DestinationId>"+
                                     "  </SIF_Header>" +
                                     "  <SIF_Version>2.*</SIF_Version>" +
                                     "  <SIF_MaxBufferSize>16384</SIF_MaxBufferSize>" +
                                     "  <SIF_Query>" +
                                     "	 <SIF_QueryObject ObjectName=\"StudentSnapshot\">"+
                                     "		<SIF_Element>@SchoolYear</SIF_Element>"+
                                     "		<SIF_Element>@SnapDate</SIF_Element>"+
                                     "		<SIF_Element>@StudentPersonalRefId</SIF_Element>"+
                                     "		<SIF_Element>HomeEnrollment/GradeLevel/Code</SIF_Element>"+
                                     "		<SIF_Element>HomeEnrollment/Status</SIF_Element>"+
                                     "		<SIF_Element>LocalId</SIF_Element>"+
                                     "		<SIF_Element>Address</SIF_Element>"+
                                     "	 </SIF_QueryObject>"+
                                     "  </SIF_Query>" +
                                     "</SIF_Request>";

            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.STUDENTSNAPSHOT, query.ObjectType);
            Assert.AreEqual("StudentSnapshot", query.ObjectTag);
            IElementDef[] elements = query.FieldRestrictions;

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

            Assert.AreEqual(StudentDTD.STUDENTSNAPSHOT_SCHOOLYEAR, elements[0]);
            Assert.AreEqual(StudentDTD.STUDENTSNAPSHOT_SNAPDATE, elements[1]);
            Assert.AreEqual(StudentDTD.STUDENTSNAPSHOT_STUDENTPERSONALREFID, elements[2]);
            Assert.AreEqual(CommonDTD.GRADELEVEL_CODE, elements[3]);
            Assert.AreEqual(StudentDTD.HOMEENROLLMENT_STATUS, elements[4]);
            Assert.AreEqual(StudentDTD.STUDENTSNAPSHOT_LOCALID, elements[5]);
            Assert.AreEqual(StudentDTD.STUDENTSNAPSHOT_ADDRESS, elements[6]);
        }
示例#29
0
        /// <summary>
        /// Reads a source SIF Data object from a file, using the specified SIF
        /// Version
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="version"></param>
        /// <returns></returns>
        protected SifElement readElementFromFile(String fileName, SifVersion version)
        {
            // NOTE: This method expects the source files to be located in the project
            // the unit tests were compiled from and makes an assumption about where that
            // project is relative to where the unit test assembly is located. That
            // makes any test based on this method less portable and may need to be adjusted in the future.

            fileName = "..\\..\\" + fileName;

            SifElement se;
            SifParser  parser = SifParser.NewInstance();

            using (StreamReader reader = new StreamReader(fileName))
            {
                se = parser.Parse(reader, null, 0, version);
                reader.Close();
            }
            return(se);
        }
示例#30
0
        public void TestParseReportData()
        {
            SIF_ReportObject reportObject = null;

            using (Stream aStream = GetResourceStream("ReportData.xml"))
            {
                TextReader aReader = new StreamReader(aStream);
                SifParser  parser  = SifParser.NewInstance();
                reportObject = (SIF_ReportObject)parser.Parse(aReader, null, SifParserFlags.None, SifVersion.SIF20r1);
                aReader.Close();
                aStream.Close();
            }

            Assert.IsNotNull(reportObject);
            Assert.AreEqual(1, reportObject.ChildCount);

            SifElement reportData = reportObject.GetChildList()[0];

            Assert.AreEqual(2060, reportData.ChildCount);
        }