コード例 #1
0
ファイル: FlowControlTests.cs プロジェクト: sifbits/SIFBench
        public void TestPingWithError()
        {
            IptFlowControlClient client = new IptFlowControlClient();
            StatusType           status = null;
            SIFHeaderType        header = createHeader();

            header.SourceId = "Olympus"; // Triggers an error in the server
            bool exceptionThrown = false;

            try
            {
                status = client.Ping(ref header, new PingType());
            }
            catch (FaultException <DataModelErrorType> ex)
            {
                exceptionThrown = true;
                Assert.AreEqual(ex.Detail.Category, InfrastructureErrorCategoryType.Item11, "Expected Category of 11");
                Assert.AreEqual(ex.Detail.Code, "1", "Expected Code of 1");
            }
            catch (Exception ex)
            {
                Assert.Fail("Unable to parse SOAP Fault into expected exception type: " + ex.ToString());
            }

            Assert.IsTrue(exceptionThrown, "A SOAP Fault was not returned");
        }
コード例 #2
0
        public void TestEventWithError()
        {
            IptDataModel client = new IptDataModelClient();
            PostEvent    pEvent = new PostEvent();

            SIFHeaderType header = createHeader();

            header.EventAction          = SIFHeaderTypeEventAction.Add;
            header.EventActionSpecified = true;
            header.TopicName            = "FoodserviceMilkSales";


            pEvent.SIFHeader = header;
            pEvent.Event     = createXML(
                @"<FoodserviceMilkSales RefId='D21CF29B7FB44965A9CF950E1E60B21E'
                            xmlns='" + Statics.XMLNS_SIF_US_DATAMODEL + @"'>
                      <SchoolInfoRefId>AA66800BE0D84E80AA5838FA97EE3A3E</SchoolInfoRefId>
                      <Date>2001-10-31</Date>
                      <Program Type='Foodservice'>NSLP</Program>
                      <SaleQuantities>
                        <SaleQuantity>
                          <Value>99999</Value>
                          <MealStatus Type='Free' />
                          <SaleUnit>6 oz</SaleUnit>
                          <ChargeToChild Currency='USD'>999.99</ChargeToChild>
                        </SaleQuantity>
                        <SaleQuantity>
                          <Value>99999</Value>
                          <MealStatus Type='Reduced' />
                          <SaleUnit>6 oz</SaleUnit>
                          <ChargeToChild Currency='USD'>999.99</ChargeToChild>
                        </SaleQuantity>
                      </SaleQuantities>
                    </FoodserviceMilkSales>");


            bool exceptionThrown = false;

            try
            {
                EventStatus evStatus = client.Event(pEvent);
            }
            catch (FaultException <DataModelErrorType> ex)
            {
                exceptionThrown = true;
                Assert.AreEqual(ex.Detail.Category, InfrastructureErrorCategoryType.Item9, "Expected Category of 9");
                Assert.AreEqual(ex.Detail.Code, "3", "Expected Code of 3");
            }
            catch (Exception ex)
            {
                Assert.Fail("Unable to parse SOAP Fault into expected exception type : " + ex.ToString());
            }

            Assert.IsTrue(exceptionThrown, "A SOAP Fault was not returned");
        }
コード例 #3
0
ファイル: FlowControl.cs プロジェクト: sifbits/SIFBench
        public StatusType Sleep(ref SIFHeaderType SIFHeader, SleepType Sleep1)
        {
            SleepRequest inValue = new SleepRequest();

            inValue.SIFHeader = SIFHeader;
            inValue.Sleep     = Sleep1;
            PongResponse retVal = ((IptFlowControl)(this)).Sleep(inValue);

            SIFHeader = retVal.SIFHeader;
            return(retVal.Status);
        }
コード例 #4
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
        public StatusType Event(ref SIFHeaderType SIFHeader, System.Xml.XmlElement Event1)
        {
            PostEvent inValue = new PostEvent();

            inValue.SIFHeader = SIFHeader;
            inValue.Event     = Event1;
            EventStatus retVal = ((IptDataModel)(this)).Event(inValue);

            SIFHeader = retVal.SIFHeader;
            return(retVal.Status);
        }
コード例 #5
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
        public StatusType Query(ref SIFHeaderType SIFHeader, QueryType Query1)
        {
            QueryRequest inValue = new QueryRequest();

            inValue.SIFHeader = SIFHeader;
            inValue.Query     = Query1;
            EventStatus retVal = ((IptDataModel)(this)).Query(inValue);

            SIFHeader = retVal.SIFHeader;
            return(retVal.Status);
        }
コード例 #6
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
        public StatusType ExtendedQuery(ref SIFHeaderType SIFHeader, ExtendedQueryType ExtendedQuery1)
        {
            ExtendedQueryRequest inValue = new ExtendedQueryRequest();

            inValue.SIFHeader     = SIFHeader;
            inValue.ExtendedQuery = ExtendedQuery1;
            EventStatus retVal = ((IptDataModel)(this)).ExtendedQuery(inValue);

            SIFHeader = retVal.SIFHeader;
            return(retVal.Status);
        }
コード例 #7
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
        public StatusType QueryResults(ref SIFHeaderType SIFHeader, System.Xml.XmlElement QueryResults1)
        {
            QueryResultsResponse inValue = new QueryResultsResponse();

            inValue.SIFHeader    = SIFHeader;
            inValue.QueryResults = QueryResults1;
            EventStatus retVal = ((IptDataModel)(this)).QueryResults(inValue);

            SIFHeader = retVal.SIFHeader;
            return(retVal.Status);
        }
コード例 #8
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
        public StatusType ExtendedQueryResults(ref SIFHeaderType SIFHeader, ExtendedQueryResultsType ExtendedQueryResults1)
        {
            ExtendedQueryResultsResponse inValue = new ExtendedQueryResultsResponse();

            inValue.SIFHeader            = SIFHeader;
            inValue.ExtendedQueryResults = ExtendedQueryResults1;
            EventStatus retVal = ((IptDataModel)(this)).ExtendedQueryResults(inValue);

            SIFHeader = retVal.SIFHeader;
            return(retVal.Status);
        }
コード例 #9
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
        public StatusType CancelRequests(ref SIFHeaderType SIFHeader, CancelRequestsType CancelRequests1)
        {
            CancelRequestsRequest inValue = new CancelRequestsRequest();

            inValue.SIFHeader      = SIFHeader;
            inValue.CancelRequests = CancelRequests1;
            EventStatus retVal = ((IptDataModel)(this)).CancelRequests(inValue);

            SIFHeader = retVal.SIFHeader;
            return(retVal.Status);
        }
コード例 #10
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
        public StatusType DataModelError(ref SIFHeaderType SIFHeader, DataModelErrorType DataModelError1)
        {
            ErrorNotify inValue = new ErrorNotify();

            inValue.SIFHeader      = SIFHeader;
            inValue.DataModelError = DataModelError1;
            EventStatus retVal = ((IptDataModel)(this)).DataModelError(inValue);

            SIFHeader = retVal.SIFHeader;
            return(retVal.Status);
        }
コード例 #11
0
ファイル: FlowControl.cs プロジェクト: sifbits/SIFBench
        public StatusType Wakeup(ref SIFHeaderType SIFHeader, WakeupType Wakeup1)
        {
            WakeupRequest inValue = new WakeupRequest();

            inValue.SIFHeader = SIFHeader;
            inValue.Wakeup    = Wakeup1;
            PongResponse retVal = ((IptFlowControl)(this)).Wakeup(inValue);

            SIFHeader = retVal.SIFHeader;
            return(retVal.Status);
        }
コード例 #12
0
ファイル: FlowControl.cs プロジェクト: sifbits/SIFBench
        public StatusType Ping(ref SIFHeaderType SIFHeader, PingType Ping1)
        {
            PingRequest inValue = new PingRequest();

            inValue.SIFHeader = SIFHeader;
            inValue.Ping      = Ping1;
            PongResponse retVal = ((IptFlowControl)(this)).Ping(inValue);

            SIFHeader = retVal.SIFHeader;
            return(retVal.Status);
        }
コード例 #13
0
        private SIFHeaderType createHeader()
        {
            SIFHeaderType header = new SIFHeaderType();

            header.ZoneId                = "foo:bar";
            header.DataModel             = Statics.XMLNS_SIF_US_DATAMODEL;
            header.DataModelVersion      = Statics.VERSION_US_DATAMODEL;
            header.SourceId              = generateSourceId();
            header.Timestamp             = DateTime.Now;
            header.InfrastructureVersion = Statics.VERSION_INFRASTRUCTURE;
            return(header);
        }
コード例 #14
0
ファイル: FlowControlTests.cs プロジェクト: sifbits/SIFBench
        public void TestWakeup()
        {
            IptFlowControlClient client = new IptFlowControlClient();
            StatusType           status = null;
            SIFHeaderType        header = createHeader();

            status = client.Wakeup(ref header, new WakeupType());
            runAssertions(header);
            Console.WriteLine("Invoked with return code " + status.Code);

            Assert.AreEqual(status.Code, InfrastructureStatusCodeType.Item0);
            Assert.AreEqual(status.Desc, "Success");
        }
コード例 #15
0
        public void TestEvent()
        {
            IptDataModel client = new IptDataModelClient();
            PostEvent    pEvent = new PostEvent();

            SIFHeaderType header = createHeader();

            header.EventAction          = SIFHeaderTypeEventAction.Add;
            header.EventActionSpecified = true;
            header.TopicName            = "SchoolCourseInfo";


            pEvent.SIFHeader = header;
            pEvent.Event     = createXML(
                @"<SchoolCourseInfo RefId='9D75101A8C3D00AA001A0000A2E35B35' SchoolInfoRefId='101A8C3D00AA001A0000A2E35B359D75' SchoolYear='2006'
                        xmlns='" + Statics.XMLNS_SIF_US_DATAMODEL + @"'>
                      <CourseCode>CS101</CourseCode>
                      <StateCourseCode>08-001</StateCourseCode>
                      <DistrictCourseCode>CS101</DistrictCourseCode>
                      <SubjectAreaList>
                        <SubjectArea>
                          <Code>05</Code>
                          <OtherCodeList>
                            <OtherCode Codeset='Text'>Graphic Arts</OtherCode>
                          </OtherCodeList>
                        </SubjectArea>
                      </SubjectAreaList>
                      <CourseTitle>Gif, JPeg, or Png: What's the Difference?</CourseTitle>
                      <Description>Explore the various types of files related to graphic arts.</Description>
                      <InstructionalLevel>
                        <Code>0571</Code>
                      </InstructionalLevel>
                      <CourseCredits Type='0585'>2</CourseCredits>
                      <CoreAcademicCourse>No</CoreAcademicCourse>
                      <GraduationRequirement>No</GraduationRequirement>
                </SchoolCourseInfo>");

            EventStatus evStatus = client.Event(pEvent);

            runAssertions(evStatus.SIFHeader);
            Assert.IsNotNull(evStatus.Status, "Status is null");
            StatusType status = evStatus.Status;

            Console.WriteLine("Invoked with return code " + status.Code);
            Assert.AreEqual(status.Code, InfrastructureStatusCodeType.Item0);
            Assert.AreEqual(status.Desc, "Success");
        }
コード例 #16
0
        public void TestQueryWithError()
        {
            IptDataModel client   = new IptDataModelClient();
            QueryRequest qRequest = new QueryRequest();

            // Header
            SIFHeaderType header = createHeader();

            header.TopicName              = "FoodserviceMilkSales";
            header.MaxBufferSize          = uint.MaxValue;
            header.MaxBufferSizeSpecified = true;
            header.ResponseVersion        = new String[] { "1.1", "2.0r1", "2.1", "2.5", "2.*" };
            qRequest.SIFHeader            = header;

            // Query
            QueryTypeQueryObject query = new QueryTypeQueryObject();

            query.ObjectName = "FoodserviceMilkSales";
            QueryType type = new QueryType();

            type.QueryObject = query;
            qRequest.Query   = type;

            bool exceptionThrown = false;

            try
            {
                EventStatus evStatus = client.Query(qRequest);
            }
            catch (FaultException <DataModelErrorType> ex)
            {
                exceptionThrown = true;
                Assert.AreEqual(ex.Detail.Category, InfrastructureErrorCategoryType.Item8, "Expected Category of 8");
                Assert.AreEqual(ex.Detail.Code, "4", "Expected Code of 4");
            }
            catch (Exception ex)
            {
                Assert.Fail("Unable to parse SOAP Fault into expected exception type: " + ex.ToString());
            }

            Assert.IsTrue(exceptionThrown, "A SOAP Fault was not returned");
        }
コード例 #17
0
        private void runAssertions(SIFHeaderType header)
        {
            // TODO: Assert WS-Addressing headers

            //OperationContext context = OperationContext.Current;
            //MessageHeaders headers = context.IncomingMessageHeaders;
            //UniqueId contextMsgId = headers.MessageId;
            //if (contextMsgId == null)
            //{
            //    throw new FaultException("No WS-AddressingMsgId Specified");
            //}
            //Console.WriteLine("Received message with ID: {0}", contextMsgId);

            //String action = headers.Action;
            //if (action == null)
            //{
            //    throw new FaultException("No WS-Addressing Action specified");
            //}
            //Console.WriteLine("   -Action: {0}", action);

            //if (!action.StartsWith("http://www.sifassociation.org/contract/DataModel-S11/2.x/"))
            //{
            //    throw new FaultException("Action does not start with 'http://www.sifassociation.org/contract/DataModel-S11/2.x/'");
            //}

            Assert.IsNotNull(header, "SIFHeader was not returned");

            Assert.IsFalse(String.IsNullOrEmpty(header.SourceId), "SourceId is null");
            Assert.AreNotEqual(header.SourceId, generateSourceId(), "SourceID is not valid");
            Assert.AreEqual(header.InfrastructureVersion, "2.5");
            Assert.IsNotNull(header.Timestamp);
            DateTime timestamp = header.Timestamp;
            TimeSpan diff      = DateTime.Now - timestamp;

            Assert.IsTrue(diff.TotalDays < 30, "Timestamp: '" + timestamp + "' does not represent a recent date");
            Assert.IsFalse(String.IsNullOrEmpty(header.ZoneId), "ZoneId is null");
        }
コード例 #18
0
        public void TestQuery()
        {
            IptDataModel client   = new IptDataModelClient();
            QueryRequest qRequest = new QueryRequest();

            // Header
            SIFHeaderType header = createHeader();

            header.TopicName              = "SchoolCourseInfo";
            header.MaxBufferSize          = uint.MaxValue;
            header.MaxBufferSizeSpecified = true;
            header.ResponseVersion        = new String[] { "1.1", "2.0r1", "2.1", "2.5", "2.*" };
            qRequest.SIFHeader            = header;

            // Query
            QueryTypeQueryObject query = new QueryTypeQueryObject();

            query.ObjectName = "SchoolCourseInfo";
            QueryType type = new QueryType();

            type.QueryObject = query;


            qRequest.Query = type;

            EventStatus evStatus = client.Query(qRequest);

            runAssertions(evStatus.SIFHeader);
            Assert.IsNotNull(evStatus.Status, "Status is null");
            StatusType status = evStatus.Status;

            Console.WriteLine("Invoked with return code " + status.Code);

            Assert.AreEqual(status.Code, InfrastructureStatusCodeType.Item0);
            Assert.AreEqual(status.Desc, "Success");
        }
コード例 #19
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public CancelRequestsRequest(SIFHeaderType SIFHeader, CancelRequestsType CancelRequests)
 {
     this.SIFHeader = SIFHeader;
     this.CancelRequests = CancelRequests;
 }
コード例 #20
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public ErrorNotify(SIFHeaderType SIFHeader, DataModelErrorType DataModelError)
 {
     this.SIFHeader = SIFHeader;
     this.DataModelError = DataModelError;
 }
コード例 #21
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public ExtendedQueryRequest(SIFHeaderType SIFHeader, ExtendedQueryType ExtendedQuery)
 {
     this.SIFHeader     = SIFHeader;
     this.ExtendedQuery = ExtendedQuery;
 }
コード例 #22
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public ErrorNotify(SIFHeaderType SIFHeader, DataModelErrorType DataModelError)
 {
     this.SIFHeader      = SIFHeader;
     this.DataModelError = DataModelError;
 }
コード例 #23
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public EventStatus(SIFHeaderType SIFHeader, StatusType Status)
 {
     this.SIFHeader = SIFHeader;
     this.Status    = Status;
 }
コード例 #24
0
ファイル: FlowControl.cs プロジェクト: sifbits/SIFBench
 public PongResponse(SIFHeaderType SIFHeader, StatusType Status)
 {
     this.SIFHeader = SIFHeader;
     this.Status = Status;
 }
コード例 #25
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public ExtendedQueryResultsResponse(SIFHeaderType SIFHeader, ExtendedQueryResultsType ExtendedQueryResults)
 {
     this.SIFHeader            = SIFHeader;
     this.ExtendedQueryResults = ExtendedQueryResults;
 }
コード例 #26
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public PostEvent(SIFHeaderType SIFHeader, System.Xml.XmlElement Event)
 {
     this.SIFHeader = SIFHeader;
     this.Event = Event;
 }
コード例 #27
0
ファイル: FlowControl.cs プロジェクト: sifbits/SIFBench
 public PingRequest(SIFHeaderType SIFHeader, PingType Ping)
 {
     this.SIFHeader = SIFHeader;
     this.Ping = Ping;
 }
コード例 #28
0
ファイル: FlowControl.cs プロジェクト: sifbits/SIFBench
 public PingRequest(SIFHeaderType SIFHeader, PingType Ping)
 {
     this.SIFHeader = SIFHeader;
     this.Ping      = Ping;
 }
コード例 #29
0
ファイル: FlowControl.cs プロジェクト: sifbits/SIFBench
 public PongResponse(SIFHeaderType SIFHeader, StatusType Status)
 {
     this.SIFHeader = SIFHeader;
     this.Status    = Status;
 }
コード例 #30
0
ファイル: FlowControl.cs プロジェクト: sifbits/SIFBench
 public SleepRequest(SIFHeaderType SIFHeader, SleepType Sleep)
 {
     this.SIFHeader = SIFHeader;
     this.Sleep     = Sleep;
 }
コード例 #31
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public QueryResultsResponse(SIFHeaderType SIFHeader, System.Xml.XmlElement QueryResults)
 {
     this.SIFHeader = SIFHeader;
     this.QueryResults = QueryResults;
 }
コード例 #32
0
ファイル: FlowControl.cs プロジェクト: sifbits/SIFBench
 public SleepRequest(SIFHeaderType SIFHeader, SleepType Sleep)
 {
     this.SIFHeader = SIFHeader;
     this.Sleep = Sleep;
 }
コード例 #33
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public QueryRequest(SIFHeaderType SIFHeader, QueryType Query)
 {
     this.SIFHeader = SIFHeader;
     this.Query = Query;
 }
コード例 #34
0
ファイル: FlowControl.cs プロジェクト: sifbits/SIFBench
 public WakeupRequest(SIFHeaderType SIFHeader, WakeupType Wakeup)
 {
     this.SIFHeader = SIFHeader;
     this.Wakeup = Wakeup;
 }
コード例 #35
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public CancelRequestsRequest(SIFHeaderType SIFHeader, CancelRequestsType CancelRequests)
 {
     this.SIFHeader      = SIFHeader;
     this.CancelRequests = CancelRequests;
 }
コード例 #36
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public ExtendedQueryResultsResponse(SIFHeaderType SIFHeader, ExtendedQueryResultsType ExtendedQueryResults)
 {
     this.SIFHeader = SIFHeader;
     this.ExtendedQueryResults = ExtendedQueryResults;
 }
コード例 #37
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public PostEvent(SIFHeaderType SIFHeader, System.Xml.XmlElement Event)
 {
     this.SIFHeader = SIFHeader;
     this.Event     = Event;
 }
コード例 #38
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public ExtendedQueryRequest(SIFHeaderType SIFHeader, ExtendedQueryType ExtendedQuery)
 {
     this.SIFHeader = SIFHeader;
     this.ExtendedQuery = ExtendedQuery;
 }
コード例 #39
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public QueryRequest(SIFHeaderType SIFHeader, QueryType Query)
 {
     this.SIFHeader = SIFHeader;
     this.Query     = Query;
 }
コード例 #40
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public EventStatus(SIFHeaderType SIFHeader, StatusType Status)
 {
     this.SIFHeader = SIFHeader;
     this.Status = Status;
 }
コード例 #41
0
ファイル: DataModel.cs プロジェクト: sifbits/SIFBench
 public QueryResultsResponse(SIFHeaderType SIFHeader, System.Xml.XmlElement QueryResults)
 {
     this.SIFHeader    = SIFHeader;
     this.QueryResults = QueryResults;
 }
コード例 #42
0
ファイル: FlowControl.cs プロジェクト: sifbits/SIFBench
 public WakeupRequest(SIFHeaderType SIFHeader, WakeupType Wakeup)
 {
     this.SIFHeader = SIFHeader;
     this.Wakeup    = Wakeup;
 }