Пример #1
0
        public void testCustom()
        {
            eiEventSignalType signal = new eiEventSignalType();

            //
            // positive test cases
            //
            // the test harness requires rejecting unknown custom signals so we can't
            // automatically accept an unknown custom signal
            // validates all x- (custom) names
            // signal.signalName = "x-something cool";
            // validateSignal(signal, true);

            //
            // negative test cases
            //
            signal.signalName = "invalid";
            validateSignal(signal, false, ExceptionInvalidSignal.UNKNOWN_SIGNAL_NAME + ": " + signal.signalName);
        }
Пример #2
0
        /******************************************************************************/

        public void testItemBase(ItemBaseType itemBase)
        {
            eiEventSignalType signal = new eiEventSignalType();

            signal.itemBase = itemBase;

            string xml = SerializeOadrObject.serializeOjbect(signal, signal.GetType());

            // by default, the itemBase substitution parameters are generated with a root element of 'itemBase'
            // hand made modifications to oadr20b.cs fix this problem
            Assert.IsFalse(xml.Contains("itemBase"));

            Console.Out.WriteLine(xml);

            signal = (eiEventSignalType)SerializeOadrObject.deserializeObject(xml, typeof(eiEventSignalType));

            Assert.IsNotNull(signal, xml);
            Assert.IsNotNull(signal.itemBase, xml);
        }
Пример #3
0
        /******************************************************************************/

        private void addSignal(eiEventSignalType signal)
        {
            ListViewItem lvi = new ListViewItem(signal.signalName);

            lvi.SubItems.Add(signal.signalType.ToString());
            lvi.SubItems.Add(signal.signalID);

            String payload = "";
            //if (signal.currentValue.Item.value != null)
            //{
            float value = signal.currentValue.Item.value;

            payload = convertPayloadType(value);
            //}

            lvi.SubItems.Add(payload);

            lstSignals.Items.Add(lvi);

            addIntervals(signal.intervals);
        }
Пример #4
0
        /******************************************************************************/

        private void validateSignal(eiEventSignalType signal, bool shouldBeValid, string exceptionMessage = null)
        {
            try
            {
                m_oadrSignals.validateSignal(signal);

                if (!shouldBeValid)
                {
                    Assert.Fail("Exception expected");
                }
            }
            catch (ExceptionInvalidSignal ex)
            {
                if (shouldBeValid)
                {
                    Assert.Fail("Unexpected exception: " + ex.Message);
                }

                Assert.AreEqual(exceptionMessage, ex.Message);
            }
        }
Пример #5
0
        /******************************************************************************/

        public void validateSignal(eiEventSignalType signal)
        {
            if (!m_signals.ContainsKey(signal.signalName))
            {
                throw new ExceptionInvalidSignal(ExceptionInvalidSignal.UNKNOWN_SIGNAL_NAME + ": " + signal.signalName);
            }

            OadrSignal oadrSignal = m_signals[signal.signalName];

            try
            {
                oadrSignal.validateUnits(signal.signalType, signal.itemBase);
            }
            catch (ExceptionInvalidSignal ex)
            {
                throw ex;
            }
            catch (Exception ex)
            {
                throw new ExceptionInvalidSignal(ExceptionInvalidSignal.EXCEPTION_THROWN + ": " + signal.signalName, ex);
            }
        }
Пример #6
0
        public void generateOadrDistributeEvent()
        {
            oadrPayload payload = new oadrPayload();

            payload.oadrSignedObject = new oadrSignedObject();

            oadrDistributeEventType distributeEvent = new oadrDistributeEventType();

            distributeEvent.schemaVersion = "2.0b";

            distributeEvent.eiResponse                     = new EiResponseType();
            distributeEvent.eiResponse.requestID           = "";
            distributeEvent.eiResponse.responseCode        = "200";
            distributeEvent.eiResponse.responseDescription = "OK";

            distributeEvent.requestID = "OadrDisReq050214_092500_050";
            distributeEvent.vtnID     = "TH_VTN";

            payload.oadrSignedObject.Item = distributeEvent;

            distributeEvent.oadrEvent = new oadrDistributeEventTypeOadrEvent[1];

            oadrDistributeEventTypeOadrEvent oadrEvent = new oadrDistributeEventTypeOadrEvent();

            distributeEvent.oadrEvent[0] = oadrEvent;

            eiEventType eiEvent = new eiEventType();

            oadrEvent.eiEvent = eiEvent;

            eiEvent.eventDescriptor = new eventDescriptorType();

            eiEvent.eventDescriptor.eventID                       = "Event050214_092500_550_0";
            eiEvent.eventDescriptor.modificationNumber            = 0;
            eiEvent.eventDescriptor.modificationDateTime          = DateTime.ParseExact("2014-02-05T17:25:00Z", "yyyy-MM-ddTHH:mm:00Z", CultureInfo.InvariantCulture);
            eiEvent.eventDescriptor.modificationReason            = "Update";
            eiEvent.eventDescriptor.priority                      = 1;
            eiEvent.eventDescriptor.eiMarketContext               = new eventDescriptorTypeEiMarketContext();
            eiEvent.eventDescriptor.eiMarketContext.marketContext = "http://MarketContext1";
            eiEvent.eventDescriptor.createdDateTime               = DateTime.ParseExact("2014-02-05T17:25:00Z", "yyyy-MM-ddTHH:mm:00Z", CultureInfo.InvariantCulture);
            eiEvent.eventDescriptor.eventStatus                   = EventStatusEnumeratedType.completed;
            eiEvent.eventDescriptor.testEvent                     = "false";
            eiEvent.eventDescriptor.vtnComment                    = "Sample Payload";
            eiEvent.eventDescriptor.vtnComment                    = "comment";

            // active period
            eiEvent.eiActivePeriod                                     = new eiActivePeriodType();
            eiEvent.eiActivePeriod.properties                          = new properties();
            eiEvent.eiActivePeriod.properties.dtstart                  = new dtstart();
            eiEvent.eiActivePeriod.properties.dtstart.datetime         = DateTime.ParseExact("2014-02-05T17:35:00Z", "yyyy-MM-ddTHH:mm:00Z", CultureInfo.InvariantCulture);
            eiEvent.eiActivePeriod.properties.duration                 = new DurationPropType();
            eiEvent.eiActivePeriod.properties.duration.duration        = "PT5M";
            eiEvent.eiActivePeriod.properties.xeiNotification          = new DurationPropType();
            eiEvent.eiActivePeriod.properties.xeiNotification.duration = "PT1M";

            // signals
            eiEvent.eiEventSignals = new eiEventSignalsType();
            eiEvent.eiEventSignals.eiEventSignal = new eiEventSignalType[1];

            eiEventSignalType signal = new eiEventSignalType();

            signal.intervals                      = new IntervalType[1];
            signal.intervals[0]                   = new IntervalType();
            signal.intervals[0].duration          = new DurationPropType();
            signal.intervals[0].duration.duration = "PT5M";
            IntervalTypeUidUid uid = new IntervalTypeUidUid();

            uid.text = "0";
            signal.intervals[0].Item = uid;

            // signal payload
            signal.intervals[0].streamPayloadBase = new StreamPayloadBaseType[1];

            signalPayloadType val = new signalPayloadType();
            PayloadFloatType  pft = new PayloadFloatType();

            pft.value = (float)3.14;
            val.Item  = pft;
            signal.intervals[0].streamPayloadBase[0] = val;

            eiEvent.eiEventSignals.eiEventSignal[0] = signal;

            // signal type
            signal.signalName = SignalNameEnumeratedType.ELECTRICITY_PRICE.ToString();
            signal.signalType = SignalTypeEnumeratedType.price;
            signal.signalID   = "SIG_02";

            currencyType currency = new currencyType();

            currency.itemDescription = currencyItemDescriptionType.currencyPerKWh;
            currency.itemUnits       = ISO3AlphaCurrencyCodeContentType.USD;
            currency.siScaleCode     = SiScaleCodeType.none;

            signal.itemBase = currency;

            signal.currentValue = new currentValueType();
            PayloadFloatType pft2 = new PayloadFloatType();

            pft2.value = (float)0.0;
            signal.currentValue.Item = pft2;

            signal.eiTarget               = new EiTargetType();
            signal.eiTarget.resourceID    = new string[2];
            signal.eiTarget.resourceID[0] = "resource1";
            signal.eiTarget.resourceID[1] = "resource2";

            oadrEvent.oadrResponseRequired = ResponseRequiredType.always;

            string xml = SerializeOadrObject.serializeOjbect(payload, payload.GetType());

            Console.Out.WriteLine(xml);

            /*serializer = new XmlSerializer(typeof(eiEventSignalType));
             *
             * MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(xml));
             *
             * signal = (eiEventSignalType)serializer.Deserialize(ms);
             *
             * Assert.IsNotNull(signal);
             *
             * ms.Close();*/
        }