Beispiel #1
0
        public void OpensReaderWithDefaults()
        {
            EncodedResource r      = new EncodedResource(new StringResource("test"));
            StreamReader    reader = (StreamReader)r.OpenReader();

            Assert.AreEqual(Encoding.UTF8.EncodingName, reader.CurrentEncoding.EncodingName);
            Assert.AreEqual("test", reader.ReadToEnd());
        }
Beispiel #2
0
        public void HashcodeIsCalculatedUsingResourceOnly()
        {
            StringResource  testResource = new StringResource("test");
            EncodedResource er1          = new EncodedResource(testResource, Encoding.ASCII, true);
            EncodedResource er2          = new EncodedResource(testResource, Encoding.UTF8, false);

            Assert.AreEqual(testResource.GetHashCode(), er1.GetHashCode());
            Assert.AreEqual(er1.GetHashCode(), er2.GetHashCode());
        }
        /// <summary>
        /// Determine whether <paramref name="obj"/> equals this instance.
        /// </summary>
        /// <returns>
        /// <c>true</c> if obj is an <see cref="EncodedResource"/> and both
        /// , <see cref="Resource"/> and <see cref="Encoding"/> are equal.
        /// </returns>
        public override bool Equals(object obj)
        {
            if (obj == this)
            {
                return(true);
            }
            if (!(obj is EncodedResource))
            {
                return(false);
            }

            EncodedResource other = (EncodedResource)obj;

            return(object.Equals(this.resource, other.resource) &&
                   object.Equals(this.encoding, other.encoding));
        }
Beispiel #4
0
        public void OpensReaderWithoutAutoDetectEncoding()
        {
            string   expected = "test";
            Encoding utf32    = new UTF32Encoding(false, true);

            byte[]          resourceData = GetBytes(expected, utf32);
            EncodedResource r            = new EncodedResource(new InputStreamResource(new MemoryStream(resourceData), "description"), Encoding.UTF8, false);
            StreamReader    reader       = (StreamReader)r.OpenReader();

            Assert.AreEqual(Encoding.UTF8.EncodingName, reader.CurrentEncoding.EncodingName);
            string actual = reader.ReadToEnd();

//            Assert.AreEqual("\uFFFD\uFFFD\0\0t\0\0\0e\0\0\0s\0\0\0t\0\0\0", actual);
            Assert.AreEqual(Encoding.UTF8.GetString(resourceData), actual);
            Assert.AreEqual(Encoding.UTF8.EncodingName, reader.CurrentEncoding.EncodingName);
        }
Beispiel #5
0
        public void OpensReaderWithAutoDetectEncoding()
        {
            string   expected = "test";
            Encoding utf32    = new UTF32Encoding(false, true);

            byte[] resourceData = GetBytes(expected, utf32);
            resourceData = (byte[])ArrayUtils.Concat(utf32.GetPreamble(), resourceData);
            EncodedResource r      = new EncodedResource(new InputStreamResource(new MemoryStream(resourceData), "description"), Encoding.UTF8, true);
            StreamReader    reader = (StreamReader)r.OpenReader();

            Assert.AreEqual(Encoding.UTF8.EncodingName, reader.CurrentEncoding.EncodingName);
            string actual = reader.ReadToEnd();

            Assert.AreEqual("\uFEFF" + expected, actual);
// interestingly the line below is *not* true!
//            Assert.AreEqual(utf32.GetString(resourceData), actual);
            Assert.AreEqual(utf32, reader.CurrentEncoding);
        }