public void SerializeToFileCustom()
        {
            DataRepository  repo     = new DataRepository();
            Book            bok      = new Book("kartofle", "stefan");
            Book            bok2     = new Book("kartofle2", "stefan2");
            BookDescription bokDesc  = new BookDescription("bla", bok);
            BookDescription bokDesc2 = new BookDescription("bla2", bok2);
            Reader          red      = new Reader("zenek", "cos", 666126161);
            Reader          red2     = new Reader("zenek2", "cos2", 40445454);
            Borrow          bor      = new Borrow(red, bokDesc);

            repo.AddReader(red);
            repo.AddReader(red2);
            repo.AddBook(bok);
            repo.AddBook(bok2);
            repo.AddBookDescription(bokDesc);
            repo.AddBookDescription(bokDesc2);
            repo.AddBorrow(bor);
            repo.AddBookNumber(bokDesc, 5000);


            repo.SaveDataCustom("saveData");

            DataRepository repo2 = new DataRepository();

            repo2.LoadDataCustom("saveData");

            Assert.IsTrue(CheckIfSame(repo, repo2));
        }
        public void AddBookNumberTest()
        {
            var            Book1          = RandomBookDescription();
            int            Number1        = rng.Next();
            var            Book2          = RandomBookDescription();
            int            Number2        = rng.Next();
            DataRepository dataRepository = new DataRepository();

            dataRepository.AddBookNumber(Book1.Object, Number1);
            dataRepository.AddBookNumber(Book2.Object, Number2);

            //Test reflected object
            var         data        = typeof(DataRepository).GetField("Data", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
            DataContext dataContext = (DataContext)data.GetValue(dataRepository);

            Assert.AreEqual(2, dataContext.NumberOfBooks.Count());
            Assert.IsTrue(dataContext.NumberOfBooks.ContainsKey(Book1.Object));
            Assert.IsTrue(dataContext.NumberOfBooks.ContainsKey(Book2.Object));
            Assert.IsTrue(dataContext.NumberOfBooks.ContainsValue(Number1));
            Assert.IsTrue(dataContext.NumberOfBooks.ContainsValue(Number2));
        }
        public void GetBookNumberTest()
        {
            var            Book1          = RandomBookDescription();
            int            Old            = rng.Next();
            DataRepository dataRepository = new DataRepository();

            //assume add is working
            dataRepository.AddBookNumber(Book1.Object, Old);

            //Test reflected object
            var         data        = typeof(DataRepository).GetField("Data", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
            DataContext dataContext = (DataContext)data.GetValue(dataRepository);


            Assert.AreEqual(Old, dataContext.NumberOfBooks[Book1.Object]);
        }
        public void GetAllNumberOfBooksTest()
        {
            const int      NUMBER_OF_BOOK_NUMBERS      = 1000;
            DataRepository dataRepository              = new DataRepository();
            Dictionary <BookDescription, int> Expected = new Dictionary <BookDescription, int>();

            for (int i = 0; i < NUMBER_OF_BOOK_NUMBERS; i++)
            {
                var MockBookDescripion = RandomBookDescription();
                int Number             = rng.Next();
                dataRepository.AddBookNumber(MockBookDescripion.Object, Number);
                Expected.Add(MockBookDescripion.Object, Number);
            }

            Assert.AreSame(dataRepository.GetAllNumberOfBooks().Keys.ToString(), Expected.Keys.ToString());
            Assert.AreSame(dataRepository.GetAllNumberOfBooks().Values.ToString(), Expected.Values.ToString());
            Assert.AreSame(Expected.ToString(), dataRepository.GetAllNumberOfBooks().ToString());
        }