public void TestRegister()
        {
            var mt = new MessageTemplate("Logon", new Field[0]);
            AbstractTemplateRegistry registry = new BasicTemplateRegistry {{1000, mt}};

            Assert.Contains(mt, registry.Templates);
            Assert.AreEqual(1000, registry.GetId("Logon"));
            Assert.AreEqual(1000, registry.GetId(mt));
            Assert.AreEqual(mt, registry[1000]);
            Assert.AreEqual(mt, registry["Logon"]);
        }
        public void TestDefine()
        {
            var mt = new MessageTemplate("Logon", new Field[0]);
            AbstractTemplateRegistry registry = new BasicTemplateRegistry();
            registry.Define(mt);

            //Assert.Contains(mt, registry.Templates);//dont know why it need to access when it is just defined *SM*
            Assert.AreEqual(-1, registry.GetId("Logon"));
            Assert.AreEqual(-1, registry.GetId(mt));
            Assert.AreEqual(null, registry[1000]);
            Assert.AreEqual(mt, registry["Logon"]);
        }