예제 #1
0
 public Function()
 {
     _queueReader = new SongQueueReader();
     _queueWriter = new SongQueueWriter();
     _library     = new LibraryWriter();
     _songs       = new SongReader();
 }
        public void Init()
        {
            var dir = Path.GetDirectoryName(typeof(LibraryWriterTest).Assembly.Location);

            Environment.CurrentDirectory = dir ?? throw new InvalidOperationException("Directory can't be null");
            _path       = $"{Directory.GetCurrentDirectory()}\\MyLibrary.xml";
            _schemaPath = $"{Directory.GetCurrentDirectory()}\\library.xsd";
            FileStream fs = new FileStream(_path, FileMode.Create, FileAccess.Write);

            _libraryWriter = new LibraryWriter(fs);
        }
예제 #3
0
        static void Main(string[] args)
        {
            #region Library reader
            //LibraryReader lreader = new LibraryReader(File.OpenRead($@"{Directory.GetCurrentDirectory()}\library.xml"), $@"{Directory.GetCurrentDirectory()}\library.xsd");
            //foreach (LibraryElement el in lreader)
            //{
            //    Console.WriteLine(el.Name);
            //    Console.WriteLine(el.PagesCount);
            //    Console.WriteLine(el.Note);
            //}

            //var books = lreader.Where(element => element.GetType() == typeof(Book)).Select(element => (Book)element);
            //foreach (var book in books)
            //{
            //    Console.WriteLine(book.Name);
            //    Console.WriteLine(book.PagesCount);
            //    Console.WriteLine(book.Note);
            //    Console.WriteLine(book.InternationNumber);
            //    Console.WriteLine(book.Autor);
            //    Console.WriteLine(book.PublishingYear);
            //}

            //lreader.Close();

            #endregion

            #region Library writer

            FileStream            fs = new FileStream($"{Directory.GetCurrentDirectory()}\\MyLibrary.xml", FileMode.Create, FileAccess.Write);
            LibraryWriter         lw = new LibraryWriter(fs);
            List <LibraryElement> libraryElements = new List <LibraryElement>()
            {
                new Book
                {
                    Name              = "test",
                    Note              = "test",
                    PagesCount        = 500,
                    Autor             = "test",
                    InternationNumber = "test",
                    PublishingHouse   = "test",
                    PublishingName    = "test",
                    //PublishingYear = 2018
                }
            };
            lw.Write(libraryElements, "TestWriter");
            //lw.Close();

            #endregion

            Console.ReadLine();
        }
예제 #4
0
        public void Write()
        {
            using (Stream targetStream = new MemoryStream())
            {
                var songs = new[] { Helpers.LocalSong1, Helpers.LocalSong2 };

                var playlists = new[] { Helpers.Playlist1, Helpers.Playlist2 };

                LibraryWriter.Write(songs, playlists, targetStream);

                string expected = Helpers.GenerateSaveFile();
                string actual   = Helpers.StreamToString(targetStream).Replace("\r\n", String.Empty);

                Assert.AreEqual(expected, actual);
            }
        }
        public void Write_should_write_empty_file_without_elements()
        {
            //Arange
            var path        = $"{Directory.GetCurrentDirectory()}\\BrokenLibrary.xml";
            var streamWrite = new FileStream(path, FileMode.Create, FileAccess.Write);
            //Act
            var libraryWriter = new LibraryWriter(streamWrite);

            libraryWriter.Write(GetMockedUnCorectLibraryElements(), "BrokenLibrary");
            libraryWriter.Close();
            var streamRead    = new FileStream(path, FileMode.Open, FileAccess.Read);
            var libraryReader = new LibraryReader(streamRead, _schemaPath);

            libraryReader.Close();
            //Assert
            Assert.That(!libraryReader.Any());
        }
        public void CanToWriteRealCollectioToRealFileTest()
        {
            List <IElement> library;
            var             settings    = new LibrarySettings();
            var             outSettings = new OutputSettings();

            var stream = new FileStream(PathStrings.FileToRead, FileMode.Open);

            using (stream)
            {
                library = new LibraryReader <IElement>(stream, settings).ToList();
            }
            stream = new FileStream(PathStrings.FileToWrite, FileMode.Create);
            using (stream)
            {
                var writer = new LibraryWriter <IElement>(library, settings);
                writer.WriteXElements(stream, outSettings);
            }
        }
        private string WriteXmlString <T>(List <T> collecton, bool withFailSettings = false) where T : class
        {
            var outSettings = new OutputSettings();
            var settings    = new LibrarySettings();

            if (withFailSettings)
            {
                settings.MainElementName = null;
            }
            var    stream = new MemoryStream();
            string result;

            using (stream)
            {
                var writer = new LibraryWriter <T>(collecton, settings);
                writer.WriteXElements(stream, outSettings);
                stream.Position = 0;
                result          = new StreamReader(stream).ReadToEnd();
            }

            return(result);
        }