public void ReadPlaylists() { using (Stream saveFileStream = Helpers.GenerateSaveFile().ToStream()) { Playlist[] playlists = LibraryReader.ReadPlaylists(saveFileStream).ToArray(); Playlist playlist1 = playlists[0]; Song[] songs1 = playlist1.ToArray(); Song localSong1 = Helpers.LocalSong1; Song localSong2 = Helpers.LocalSong2; Assert.AreEqual("Playlist1", playlist1.Name); Assert.AreEqual(localSong1.OriginalPath, songs1[0].OriginalPath); Assert.IsInstanceOf(localSong1.GetType(), songs1[0]); Assert.AreEqual(localSong2.OriginalPath, songs1[1].OriginalPath); Assert.IsInstanceOf(localSong2.GetType(), songs1[1]); Playlist playlist2 = playlists[1]; Song[] songs2 = playlist2.ToArray(); Song youtubeSong1 = Helpers.YoutubeSong1; Assert.AreEqual("Playlist2", playlist2.Name); Assert.AreEqual(localSong1.OriginalPath, songs2[0].OriginalPath); Assert.IsInstanceOf(localSong1.GetType(), songs2[0]); Assert.AreEqual(youtubeSong1.OriginalPath, songs2[1].OriginalPath); Assert.AreEqual(youtubeSong1.Title, songs2[1].Title); Assert.AreEqual(youtubeSong1.Duration.Ticks, songs2[1].Duration.Ticks); Assert.IsInstanceOf(youtubeSong1.GetType(), songs2[1]); } }
public void Read_should_be_equal_mocked_collection() { //Arrange _libraryReader = new LibraryReader(File.OpenRead(_path), _schemaPath); var mockedCollection = GetMockedCorectLibraryElements(); //Act var result = _libraryReader.ToList(); _libraryReader.Close(); //Assert CollectionAssert.AreEqual(mockedCollection, result); }
public void Take_AssignsReader() { List <Book> Books = new List <Book>(); LibraryManager Manager = LibraryManager.Instance; Book TestBook = new Book("name", "author", "category", "language", new LocalDate(2021, 5, 15), "isbn"); LibraryReader TestReader = new LibraryReader("Vardenis", "Pavardenis", new LocalDate(2021, 5, 20)); Manager.AddBook(Books, TestBook); Manager.TakeBook(Books, 0, TestReader); Assert.AreEqual(Books.First().Reader, TestReader); }
private List <T> ReadXmlFile <T>() where T : class { List <T> elements; var settings = new LibrarySettings(); var stream = new FileStream(PathStrings.FileToRead, FileMode.Open); using (stream) { elements = new LibraryReader <IElement>(stream, settings).Where(_ => _ is T).Cast <T>().ToList(); } return(elements); }
public LibraryWriter() { var s3Config = new AmazonS3Config { ServiceURL = "https://s3-eu-west-1.amazonaws.com" }; var dbConfig = new AmazonDynamoDBConfig { ServiceURL = "https://dynamodb.eu-west-1.amazonaws.com" }; _s3 = new AmazonS3Client(s3Config); _db = new AmazonDynamoDBClient(dbConfig); _file = new FileReader(); _library = new LibraryReader(); }
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 ReadSongs() { using (Stream saveFileStream = Helpers.GenerateSaveFile().ToStream()) { LocalSong[] songs = LibraryReader.ReadSongs(saveFileStream).ToArray(); Song actualSong1 = songs[0]; Song expectedSong1 = Helpers.LocalSong1; AssertSongsAreEqual(expectedSong1, actualSong1); Song actualSong2 = songs[1]; Song expectedSong2 = Helpers.LocalSong2; AssertSongsAreEqual(expectedSong2, actualSong2); } }
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); } }
public void Take_DateOver2Months_ShouldThrowTakenDatePeriod() { List <Book> Books = new List <Book>(); LibraryManager Manager = LibraryManager.Instance; Book TestBook = new Book("name", "author", "category", "language", new LocalDate(2021, 5, 15), "isbn"); LibraryReader TestReader = new LibraryReader("Vardenis", "Pavardenis", new LocalDate(2023, 5, 20)); bool ExceptionWasThrown = false; try { Manager.AddBook(Books, TestBook); Manager.TakeBook(Books, 0, TestReader); } catch (TakeDatePeriodException e) { ExceptionWasThrown = true; } Assert.IsTrue(ExceptionWasThrown); }
private List <T> ReadXmlString <T>(string xmlString, bool withFailSettings = false) where T : class { var settings = new LibrarySettings(); if (withFailSettings) { settings.MainElementName = null; } List <T> elements; var stream = new MemoryStream(); using (stream) { var writer = new StreamWriter(stream); writer.Write(xmlString); writer.Flush(); stream.Position = 0; elements = new LibraryReader <T>(stream, settings).ToList(); } return(elements); }
public void Take_TakingMoreThan3Books_ShouldThrowTakenBooksLimit() { const int BookAmount = 4; List <Book> Books = new List <Book>(); LibraryManager Manager = LibraryManager.Instance; Book TestBook = new Book("name", "author", "category", "language", new LocalDate(2021, 5, 15), "isbn"); LibraryReader TestReader = new LibraryReader("Vardenis", "Pavardenis", new LocalDate(2021, 5, 20)); bool ExceptionWasThrown = false; try { for (uint i = 0; i < BookAmount; i++) { Manager.AddBook(Books, TestBook); Manager.TakeBook(Books, i, TestReader); } } catch (TakenBooksLimitException e) { ExceptionWasThrown = true; } Assert.IsTrue(ExceptionWasThrown); }
static LibraryReader.Client GetClientByID(LibraryReader.LibraryEntities context, int clientID) { LibraryReader.Client cl = context.Clients.FirstOrDefault( p => p.ClientID == clientID); return cl; }
static void Main(string[] args) { string fileName = "Books.json"; string filePath = Path.Combine(Environment.CurrentDirectory, fileName); LibraryManager Manager = LibraryManager.Instance; Book newBook; LibraryReader reader; List <Book> Books; Filter currentFilter; if (!File.Exists(filePath)) { File.Create(filePath).Close(); } try { switch (args[0]) { case "-h": DisplayHelp(); break; case "-a": newBook = new Book(args[1], args[2], args[3], args[4], Manager.ParseDate(args[5]), args[6]); Books = Manager.GetBooks(filePath); Manager.AddBook(Books, newBook); Manager.SetBooks(Books, filePath); break; case "-t": reader = new LibraryReader(args[2], args[3], Manager.ParseDate(args[4])); Books = Manager.GetBooks(filePath); Manager.TakeBook(Books, (uint)Int32.Parse(args[1]), reader); Manager.SetBooks(Books, filePath); break; case "-r": reader = new LibraryReader(args[2], args[3]); Books = Manager.GetBooks(filePath); Manager.ReturnBook(Books, (uint)Int32.Parse(args[1]), reader); Manager.SetBooks(Books, filePath); break; case "-l": if (Enum.TryParse(args[1], out currentFilter)) { Books = Manager.GetBooks(filePath); if (args.Length == 2) { Console.WriteLine(Manager.ListBooks(Books, currentFilter, null)); } else { Console.WriteLine(Manager.ListBooks(Books, currentFilter, args[2])); } } break; case "-d": Books = Manager.GetBooks(filePath); Manager.DeleteBook(Books, (uint)Int32.Parse(args[1])); Manager.SetBooks(Books, filePath); break; default: Console.WriteLine("Invalid arguments.\n"); break; } } catch (Exception e) { Console.WriteLine(e.Message); } }