# Licensed to the Apache Software Foundation (ASF) under one * # or more contributor license agreements. See the NOTICE file * # distributed with this work for additional information * # regarding copyright ownership. The ASF licenses this file * # to you under the Apache License, Version 2.0 (the * # "License"); you may not use this file except in compliance * # with the License. You may obtain a copy of the License at * # * # http://www.apache.org/licenses/LICENSE-2.0 * # * # Unless required by applicable law or agreed to in writing, * # software distributed under the License is distributed on an * # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * # KIND, either express or implied. See the License for the * # specific language governing permissions and limitations * # under the License. import unittest from etch.python.Types import * from etch.binding.msg.Message import Message from etch.binding.msg.Type import Type from etch.binding.msg.Field import Field from etch.binding.msg.ValueFactory import ValueFactory from etch.binding.support.Validator_int import Validator_int from etch.binding.support.Validator_long import Validator_long class Test_EtchMsgMessage(unittest.TestCase): def setUp(self): self.__vf = MyValueFactory() self.__mt1 = Type(1,"mt") self.__rmt = Type(2,"rmt") self.__mf1 = Field(3,"x") self.__mf2 = Field(4,"y") self.__mt1.putValidator(self.__mf1, Validator_int.get(0)) self.__mt1.putValidator(self.__mf2, Validator_int.get(0)) self.__mt1.putValidator(self.__vf.mf_messageId, Validator_long.get(0)) self.__rmt.putValidator(self.__vf.mf_messageId, Validator_long.get(0)) self.__rmt.putValidator(self.__vf.mf_inReplyTo, Validator_long.get(0)) def test_getVf(self): msg = Message(self.__mt1, self.__vf) self.assertEquals(self.__vf, msg.vf()) def test_reply(self): msg = Message( self.__mt1, self.__vf) msg.setMessageId(12345) rmsg = msg.reply(self.__rmt) self.assertEquals(self.__rmt, rmsg.type() ) self.assertEquals(self.__vf, rmsg.vf() ) self.assertEquals(12345, rmsg.getInReplyTo()) def test_getMessageId(self): msg = Message(self.__mt1, self.__vf) self.assertEquals(None, msg.getMessageId()) msg.setMessageId(234) self.assertEquals(234, msg.getMessageId()) msg.setMessageId(345) self.assertEquals(345, msg.getMessageId()) def getInReplyTo(self): msg = Message(self.__rmt, self.__vf) self.assertEquals(None, msg.getInReplyTo()) msg.setInReplyTo(234) self.assertEquals(234, msg.getInReplyTo()) def setInReplyTo(self): msg = Message(self.__rmt, self.__vf) self.assertEquals(None, msg.getInReplyTo()) msg.setInReplyTo(234) self.assertEquals(234, msg.getInReplyTo()) msg.setInReplyTo(345) self.assertEquals(345, msg.getInReplyTo()) class MyValueFactory(ValueFactory): def __new__(cls, *args, **kwargs): cls.mf_messageId = Field("_messageId") cls.mf_inReplyTo = Field("_inReplyTo") return ValueFactory.__new__(cls,*args, **kwargs) def getMessageId(self, msg): cls = self.__class__ return msg.get(cls.mf_messageId) def setMessageId(self, msg, msgid): cls = self.__class__ msg.put(cls.mf_messageId, msgid) def getInReplyTo(self, msg): cls = self.__class__ return msg.get(cls.mf_inReplyTo) def setInReplyTo(self, msg, msgid): cls = self.__class__ msg.put(cls.mf_inReplyTo, msgid) if __name__ == '__main__': unittest.main()