コード例 #1
0
        public void CanConvertReturnsFalseForEverythingElse()
        {
            var c   = new EitherConverterInner <int, string>();
            var can = c.CanConvert(typeof(Boolean));

            Assert.IsFalse(c.CanConvert(typeof(object)));
            Assert.IsFalse(c.CanConvert(typeof(string)));
            Assert.IsFalse(c.CanConvert(typeof(decimal)));
            Assert.IsFalse(c.CanConvert(typeof(int)));
            Assert.IsFalse(can);
        }
コード例 #2
0
        public void ReadReadsRight()
        {
            var c = new EitherConverterInner <int, string>();

            var rawBytes = new ReadOnlySpan <byte>(Encoding.UTF8.GetBytes("1"));
            var reader   = new Utf8JsonReader(rawBytes);

            reader.Read(); // Read always starts at none. See: https://stackoverflow.com/questions/59028159/exception-when-testing-custom-jsonconverter
            var output = c.Read(ref reader, typeof(Either <int, string>), null !);

            Assert.AreEqual(new(1), output);
        }
コード例 #3
0
        public void ReadReadsRightObject()
        {
            var c = new EitherConverterInner <int, Foo>();

            var rawBytes = new ReadOnlySpan <byte>(Encoding.UTF8.GetBytes("{\"Bar\": \"cat\", \"Baz\": 1}"));
            var reader   = new Utf8JsonReader(rawBytes);

            reader.Read(); // Read always starts at none. See: https://stackoverflow.com/questions/59028159/exception-when-testing-custom-jsonconverter
            var output = c.Read(ref reader, typeof(Either <int, Foo>), null !);

            Assert.AreEqual("cat", output !.Right().Bar);
            Assert.AreEqual(1, output !.Right().Baz);
        }
コード例 #4
0
        public void WriteWritesRight()
        {
            var c = new EitherConverterInner <int, string>();

            using (var ms = new MemoryStream()) {
                using (var writer = new Utf8JsonWriter(ms)) {
                    c.Write(writer, new Either <int, string>("cat"), null !);

                    writer.Flush();

                    var output = Encoding.UTF8.GetString(ms.ToArray());

                    Assert.AreEqual("\"cat\"", output);
                }
            }
        }
コード例 #5
0
        public void CanConvertReturnsTrueForEithers()
        {
            var c = new EitherConverterInner <int, string>();

            Assert.IsTrue(c.CanConvert(typeof(Either <int, string>)));
        }