public void EmptyConstructorCreatesDefaultValues()
        {
            var serializer = new XSerializerXmlSerializer();

            serializer.Name.Should().Be("default");
            serializer.Options.Should().BeNull();
        }
        public void SerializeToStringSerializesCorrectly()
        {
            var serializer = new XSerializerXmlSerializer();

            var xml = serializer.SerializeToString(_expectedItem, typeof(TypeForXmlSerializer));

            xml.Should().Be(string.Format(_expectedXmlFormat, _streamHeader));
        }
        public void DeserializeFromStringDeserializesCorrectly()
        {
            var serializer = new XSerializerXmlSerializer();

            var item = serializer.DeserializeFromString(string.Format(_expectedXmlFormat, _stringHeader), typeof(TypeForXmlSerializer)) as TypeForXmlSerializer;

            item.Should().NotBeNull();
            item.Should().BeEquivalentTo(_expectedItem);
        }
        public void ConstructorPassesValuesCorrectly()
        {
            var name       = "notdefault";
            var options    = new XmlSerializationOptions(encoding: Encoding.UTF32);
            var serializer = new XSerializerXmlSerializer(name, options);

            serializer.Name.Should().Be(name);
            serializer.Options.Should().NotBeNull();
            serializer.Options.Should().BeSameAs(options);
        }
        public void SerializeToStreamSerializesCorrectly()
        {
            var serializer = new XSerializerXmlSerializer();

            using (var stream = new MemoryStream())
            {
                serializer.SerializeToStream(stream, _expectedItem, typeof(TypeForXmlSerializer));

                using (var streamReader = new StreamReader(stream))
                {
                    stream.Seek(0, SeekOrigin.Begin);
                    var xml = streamReader.ReadToEnd();
                    xml.Should().Be(string.Format(_expectedXmlFormat, _streamHeader));
                }
            }
        }
        public void DeserializeFromStreamDeserializesCorrectly()
        {
            var serializer = new XSerializerXmlSerializer();

            TypeForXmlSerializer item;

            using (var stream = new MemoryStream())
            {
                using (var writer = new StreamWriter(stream, new UTF8Encoding(false, true), 1024, true))
                {
                    writer.Write(_expectedXmlFormat, _streamHeader);
                }
                stream.Seek(0, SeekOrigin.Begin);

                item = serializer.DeserializeFromStream(stream, typeof(TypeForXmlSerializer)) as TypeForXmlSerializer;
            }

            item.Should().NotBeNull();
            item.Should().BeEquivalentTo(_expectedItem);
        }
        public void ConstructorWithNullNameCreatesDefaultName()
        {
            var serializer = new XSerializerXmlSerializer(null);

            serializer.Name.Should().Be("default");
        }