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); }
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); }
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); }
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); } } }
public void CanConvertReturnsTrueForEithers() { var c = new EitherConverterInner <int, string>(); Assert.IsTrue(c.CanConvert(typeof(Either <int, string>))); }