示例#1
0
        public void ErlPortTest()
        {
            var t = new ErlPort("test", 10, 1);

            Assert.IsTrue(t.Equals(new ErlPort("test", 10, 1)));
            Assert.AreEqual(t, new ErlPort("test", 10, 1));
            Assert.AreEqual(1, new ErlPort("tesu", 10, 1).CompareTo(t));
            Assert.AreEqual(-1, new ErlPort("tess", 10, 1).CompareTo(t));
            Assert.AreEqual(-1, new ErlPort("test", 9, 1).CompareTo(t));
            Assert.AreEqual(1, new ErlPort("test", 12, 1).CompareTo(t));
            Assert.AreEqual(-1, new ErlPort("test", 10, 0).CompareTo(t));
            Assert.AreEqual(1, new ErlPort("test", 10, 2).CompareTo(t));
            Assert.AreEqual("#Port<test.10>", t.ToString());
            Assert.AreEqual("#Port<test.10>", t.ValueAsString);
            Assert.IsTrue(t.IsScalar);
            Assert.AreEqual(ErlTypeOrder.ErlPort, t.TypeOrder);

            Assert.IsTrue(t.Matches(new ErlPort("test", 10, 1)));
            Assert.AreEqual(new ErlVarBind(), t.Match(new ErlPort("test", 10, 1)));

            Assert.DoesNotThrow(() => { var x = t.ValueAsObject; });
            Assert.Throws <ErlIncompatibleTypesException>(() => { var x = t.ValueAsInt; });
            Assert.Throws <ErlIncompatibleTypesException>(() => { var x = t.ValueAsLong; });
            Assert.Throws <ErlIncompatibleTypesException>(() => { var x = t.ValueAsDecimal; });
            Assert.Throws <ErlIncompatibleTypesException>(() => { var x = t.ValueAsDateTime; });
            Assert.Throws <ErlIncompatibleTypesException>(() => { var x = t.ValueAsTimeSpan; });
            Assert.Throws <ErlIncompatibleTypesException>(() => { var x = t.ValueAsDouble; });
            Assert.AreEqual("#Port<test.10>", t.ValueAsString);
            Assert.Throws <ErlIncompatibleTypesException>(() => { var x = t.ValueAsBool; });
            Assert.Throws <ErlIncompatibleTypesException>(() => { var x = t.ValueAsChar; });
            Assert.Throws <ErlIncompatibleTypesException>(() => { var x = t.ValueAsByteArray; });

            IErlObject temp = null;

            Assert.IsFalse(t.Subst(ref temp, new ErlVarBind()));
            Assert.IsTrue(t.Visit(false, (acc, o) => acc |= o is ErlPort));
        }
示例#2
0
        public void ErlPortTest()
        {
            var t = new ErlPort("test", 10, 1);
              Assert.IsTrue(t.Equals(new ErlPort("test", 10, 1)));
              Assert.AreEqual(t, new ErlPort("test", 10, 1));
              Assert.AreEqual(1, new ErlPort("tesu", 10, 1).CompareTo(t));
              Assert.AreEqual(-1, new ErlPort("tess", 10, 1).CompareTo(t));
              Assert.AreEqual(-1, new ErlPort("test", 9, 1).CompareTo(t));
              Assert.AreEqual(1, new ErlPort("test", 12, 1).CompareTo(t));
              Assert.AreEqual(-1, new ErlPort("test", 10, 0).CompareTo(t));
              Assert.AreEqual(1, new ErlPort("test", 10, 2).CompareTo(t));
              Assert.AreEqual("#Port<test.10>", t.ToString());
              Assert.AreEqual("#Port<test.10>", t.ValueAsString);
              Assert.IsTrue(t.IsScalar);
              Assert.AreEqual(ErlTypeOrder.ErlPort, t.TypeOrder);

              Assert.IsTrue(t.Matches(new ErlPort("test", 10, 1)));
              Assert.AreEqual(new ErlVarBind(), t.Match(new ErlPort("test", 10, 1)));

              Assert.DoesNotThrow(() => { var x = t.ValueAsObject; });
              Assert.Throws<ErlIncompatibleTypesException>(() => { var x = t.ValueAsInt; });
              Assert.Throws<ErlIncompatibleTypesException>(() => { var x = t.ValueAsLong; });
              Assert.Throws<ErlIncompatibleTypesException>(() => { var x = t.ValueAsDecimal; });
              Assert.Throws<ErlIncompatibleTypesException>(() => { var x = t.ValueAsDateTime; });
              Assert.Throws<ErlIncompatibleTypesException>(() => { var x = t.ValueAsTimeSpan; });
              Assert.Throws<ErlIncompatibleTypesException>(() => { var x = t.ValueAsDouble; });
              Assert.AreEqual("#Port<test.10>", t.ValueAsString);
              Assert.Throws<ErlIncompatibleTypesException>(() => { var x = t.ValueAsBool; });
              Assert.Throws<ErlIncompatibleTypesException>(() => { var x = t.ValueAsChar; });
              Assert.Throws<ErlIncompatibleTypesException>(() => { var x = t.ValueAsByteArray; });

              IErlObject temp = null;
              Assert.IsFalse(t.Subst(ref temp, new ErlVarBind()));
              Assert.IsTrue(t.Visit(false, (acc, o) => acc |= o is ErlPort));
        }