Ejemplo n.º 1
0
        public void AddBookCopy(string title, string author, string publisher, string isbn)
        {
            var bookDescription = new BookDescription(title, author, publisher);
            var bookCopy        = new BookCopy(bookDescription, DateTime.Now, isbn);

            _dataRepository.AddBookCopy(bookCopy);
        }
Ejemplo n.º 2
0
        public BookDetailsBLL()
        {
            _description = new BookDetailsBLL.BookDescription();
            _publishInfo = new BookDetailsBLL.BookPublishInfo();
            _dimensions = new BookDimensions();

            AuthorIDs = new List<int>();
        }
Ejemplo n.º 3
0
        public void AddBook(string title, string author, uint quantity)
        {
            var bookDescripton           = new BookDescription(title, author);
            var bookShelf                = new Book(bookDescripton);
            var collectionOfTheSameBooks = Enumerable.Range(0, (int)quantity).Select(x => bookShelf);

            Book.AddRange(collectionOfTheSameBooks);
        }
Ejemplo n.º 4
0
    public void BookDescription_ShouldBeBetween1And100Characters()
    {
        Assert.Throws <ArgumentNullException>(() => new BookDescription(null !));
        Assert.Throws <ArgumentException>(() => new BookDescription(string.Empty));
        Assert.Throws <ArgumentException>(() => new BookDescription(new string('a', 101)));

        _ = new BookDescription(new string('a', 100));
        _ = new BookDescription("a");
    }
Ejemplo n.º 5
0
        public override void AddBookDescription(BookDescription bookDescription)
        {
            var x = bookDescription ?? throw new ArgumentNullException();

            if (_dataContext.BookDescriptions.Where(y => x.Equals(y.Value)).Count() == 0)
            {
                _dataContext.BookDescriptions.Add(x.Title, x);
            }
        }
Ejemplo n.º 6
0
    public void Describe_ShouldWork_EvenOnArchivedBooks(BookDescription description)
    {
        var sut = Fixture.CreateBook(config => config
                                     .With(x => x.IsArchived, true));

        Assert.NotEqual(description, sut.GetState().Description);

        sut.Describe(description);
        Assert.Equal(description, sut.GetState().Description);
    }
Ejemplo n.º 7
0
        protected TestBase()
        {
            var faker           = new Faker();
            var author          = new Author(FullName.Create(faker.Name.FirstName(), faker.Name.LastName()).Value);
            var bookCategory    = BookCategory.Create(CategoryBook.Business, faker.Locale);
            var bookDescription = BookDescription.Create(faker.Locale, faker.Date.Random.Number(1, DateTime.Now.Year));
            var bookIsbn        = Isbn.Create(TypeIsbn.Isbn10, "ISBN 1-58182-008-9");

            DefaultBookInfo = new Books(author, bookCategory.Value, bookDescription.Value, bookIsbn.Value);
        }
Ejemplo n.º 8
0
    public void Describe_ShouldUpdateDescription(BookDescription description)
    {
        var sut = Fixture.CreateBook(config => config
                                     .With(x => x.IsArchived, false));

        Assert.NotEqual(description, sut.GetState().Description);

        sut.Describe(description);
        Assert.Equal(description, sut.GetState().Description);
    }
Ejemplo n.º 9
0
        public void getStateWithGoodId()
        {
            DataRepository   dataRepository = this.CreateDataRepository();
            Person           reader         = new Reader("", "", 0, "");
            Item             book           = new Book("", null, 0, "");
            StateDescription state          = new BookDescription(book, "", new DateTime(1990, 1, 1), Purpose.All, Kind.Criminal);

            dataRepository.addStateDescription(state);
            Assert.AreEqual <StateDescription>(state, dataRepository.getStateDescription(0));
        }
Ejemplo n.º 10
0
        public void AddBookCopyConsistencyTest()
        {
            var bookDescription = new BookDescription("The Witcher", "Sapko", "JDPublish");
            var bookCopy        = new BookCopy(bookDescription, new DateTime(1999, 12, 13), "3232646894322");
            var counter         = repository.GetAllBookDescriptions().Count();

            Assert.AreEqual(repository.GetAllBookDescriptions().Count(), counter);
            repository.AddBookCopy(bookCopy);
            Assert.AreEqual(repository.GetAllBookDescriptions().Count(), counter + 1);
        }
Ejemplo n.º 11
0
        public void updateStateWithWrongId()
        {
            DataRepository   dataRepository = this.CreateDataRepository();
            Person           reader         = new Reader("", "", 0, "");
            Item             book           = new Book("", null, 0, "");
            StateDescription state          = new BookDescription(book, "", new DateTime(1990, 1, 1), Purpose.All, Kind.Criminal);

            dataRepository.updateStateDescription(1, state);
            Assert.Fail();
        }
        public void DataPopulatorTest()
        {
            AbstractDataRepository repository    = new DataRepository();
            ConstPopulator         populator     = new ConstPopulator();
            DataPopulator          dataPopulator = new DataPopulator(repository, populator);

            dataPopulator.populate();

            Assert.AreEqual(repository.GetReader(0), new Reader("Dominik", "Karski"));
            Assert.AreEqual(repository.GetReader(1), new Reader("Sebastian", "Kujawski"));
            Assert.AreEqual(repository.GetReader(2), new Reader("Joe", "Biden"));
            Assert.AreEqual(repository.GetReader(3), new Reader("Donald", "Trump"));


            var book = new BookDescription("Metro 2033", "Dmitry Glukhovsky", "Insignis");

            Assert.AreEqual(repository.GetBookDescription(book.Title), book);
            var book1 = new BookDescription("Diuna", "Frank Herbert", "Rebis");

            Assert.AreEqual(repository.GetBookDescription(book1.Title), book1);
            var book2 = new BookDescription("Harry Potter", "J.K.Rowling", "Media Rodzina");

            Assert.AreEqual(repository.GetBookDescription(book2.Title), book2);
            var book3 = new BookDescription("Pan Lodowego Ogrodu (tom 1)", "Jarosław Grzędowicz", "Fabryka Słów");

            Assert.AreEqual(repository.GetBookDescription(book3.Title), book3);

            Assert.AreEqual(repository.GetBookCopy(0), new BookCopy(book, new DateTime(2018, 5, 23), "1234567890123"));
            Assert.AreEqual(repository.GetBookCopy(1), new BookCopy(book, new DateTime(2005, 2, 22), "2234567890123"));
            Assert.AreEqual(repository.GetBookCopy(2), new BookCopy(book1, new DateTime(2012, 2, 1), "3234567890123"));
            Assert.AreEqual(repository.GetBookCopy(3), new BookCopy(book2, new DateTime(1999, 1, 13), "4234567890123"));
            Assert.AreEqual(repository.GetBookCopy(4), new BookCopy(book3, new DateTime(2003, 5, 27), "5234567890123"));

            Assert.AreEqual(repository.GetBookEvent(0),
                            new Rent(new BookCopy(book, new DateTime(2015, 5, 23), "1234567890123"),
                                     new Reader("Joe", "Biden"), new DateTime(2017, 4, 4)));
            Assert.AreEqual(repository.GetBookEvent(1),
                            new Rent(new BookCopy(book3, new DateTime(2003, 5, 27), "5234567890123"),
                                     new Reader("Dominik", "Karski"), new DateTime(2017, 11, 6)));
            Assert.AreEqual(repository.GetBookEvent(2),
                            new Rent(new BookCopy(book1, new DateTime(2012, 2, 1), "3234567890123"),
                                     new Reader("Sebastian", "Kujawski"), new DateTime(2018, 3, 3)));
            Assert.AreEqual(repository.GetBookEvent(3),
                            new Rent(new BookCopy(book, new DateTime(2005, 2, 22), "2234567890123"),
                                     new Reader("Donald", "Trump"), new DateTime(2018, 4, 4)));
            Assert.AreEqual(repository.GetBookEvent(4),
                            new Rent(new BookCopy(book2, new DateTime(1999, 1, 13), "4234567890123"),
                                     new Reader("Joe", "Biden"), new DateTime(2020, 5, 5)));
            Assert.AreEqual(repository.GetBookEvent(5),
                            new Return(new BookCopy(book, new DateTime(2015, 5, 23), "1234567890123"),
                                       new Reader("Joe", "Biden"), new DateTime(2020, 10, 10)));
            Assert.AreEqual(repository.GetBookEvent(6),
                            new Return(new BookCopy(book, new DateTime(2005, 2, 22), "2234567890123"),
                                       new Reader("Donald", "Trump"), new DateTime(2020, 11, 6)));
        }
Ejemplo n.º 13
0
        public void CreateBookSuccessTest()
        {
            var faker           = new Faker();
            var author          = new Author(FullName.Create(faker.Name.FirstName(), faker.Name.LastName()).Value);
            var bookCategory    = BookCategory.Create(CategoryBook.Business, faker.Locale);
            var bookDescription = BookDescription.Create(faker.Locale, faker.Date.Random.Number(1, DateTime.Now.Year));
            var bookIsbn        = Isbn.Create(TypeIsbn.Isbn10, "ISBN 1-58182-008-9");
            var book            = new Books(author, bookCategory.Value, bookDescription.Value, bookIsbn.Value);

            Assert.NotNull(book);
        }
        public void GetBookDescriptionTest()
        {
            DataRepository dataRepository      = new DataRepository();
            var            MockBookDescription = RandomBookDescription();

            dataRepository.AddBookDescription(MockBookDescription.Object);

            BookDescription bookDescription = dataRepository.GetBookDescription(0);

            Assert.AreEqual(bookDescription, MockBookDescription.Object);
        }
Ejemplo n.º 15
0
    public void ShouldCreate(
        BookId bookId, Language language, BookDescription description)
    {
        var sut = new Book(bookId, language, description);

        var state = sut.GetState();

        Assert.Equal(bookId, state.BookId);
        Assert.Equal(language, state.Language);
        Assert.Equal(description, state.Description);
    }
Ejemplo n.º 16
0
        public void getEventWithGoodId()
        {
            DataRepository   dataRepository = this.CreateDataRepository();
            Person           reader         = new Reader("", "", 0, "");
            Item             book           = new Book("", null, 0, "");
            StateDescription state          = new BookDescription(book, "", new DateTime(1990, 1, 1), Purpose.All, Kind.Criminal);
            Event            ev             = new Rental(state, reader, DateTime.Now);

            dataRepository.addEvent(ev);
            Assert.AreEqual <Event>(ev, dataRepository.getEvent(0));
        }
Ejemplo n.º 17
0
        public ActionResult <BookDescription> GetDescription(string descriptionId)
        {
            BookDescription description = bookService.FindDescriptionById(descriptionId);

            if (description == null)
            {
                return(NotFound());
            }

            return(description);
        }
Ejemplo n.º 18
0
        public override void DeleteBookDescription(BookDescription bookDescription)
        {
            var y = bookDescription ?? throw new ArgumentNullException();

            foreach (BookCopy x in _dataContext.BookCopies)
            {
                if (x.Book.Equals(y))
                {
                    return;
                }
            }
            _dataContext.BookDescriptions.Remove(y.Title);
        }
Ejemplo n.º 19
0
        public void CanSerializeBookDescription()
        {
            var description = new BookDescription
            {
                Book = BibleBook.Genesis,
                VerseCountsByChapter = new Dictionary <int, int> {
                    { 1, 31 }, { 2, 25 }
                }
            };
            var json = JsonSerializer.Serialize(description);

            Assert.AreEqual("{\"book\":\"Genesis\",\"verse_count_by_chapter\":{\"1\":31,\"2\":25}}", json);
        }
Ejemplo n.º 20
0
        public void DeleteBookDescriptionConsistencyTest()
        {
            Assert.AreEqual(repository.GetAllBookDescriptions().Count(), 5);
            repository.DeleteBookDescription(repository.GetBookCopy(0).Book);
            Assert.AreEqual(repository.GetAllBookDescriptions().Count(), 5);

            var book = new BookDescription("Książka", "Bezimienny", "Null");

            repository.AddBookDescription(book);
            Assert.AreEqual(repository.GetAllBookDescriptions().Count(), 6);
            repository.DeleteBookDescription(book);
            Assert.AreEqual(repository.GetAllBookDescriptions().Count(), 5);
        }
Ejemplo n.º 21
0
        public void GetDescriutionTest()
        {
            XDocument fb2 = XDocument.Load(InputPath);

            BookDescription description = fb2.GetDescription();

            Assert.AreEqual(BookAuthorFirstNameInitial, description.BookAuthorFirstName);
            Assert.AreEqual(BookAuthorFamilyNameInitial, description.BookAuthorFamilyName);
            Assert.AreEqual(TitleInitial, description.Title);
            Assert.AreEqual(FileAuthorFirstNameInitial, description.FileAuthorFirstName);
            Assert.AreEqual(FileAuthorFamilyNameInitial, description.FileAuthorFamilyName);
            CollectionAssert.AreEqual(_programsUsedInitial, description.ProgramsUsed);
            Assert.AreEqual(_dateInitial, description.Date);
        }
        public void BorrowConstructNull()
        {
            BookDescription description = null;
            Reader          reader      = null;

            try
            {
                Borrow borrow = new Borrow(reader, description);
            }
            catch (ArgumentNullException) { }
            catch (Exception)
            {
                Assert.Fail();
            }
        }
Ejemplo n.º 23
0
        public void updateEventWithGoodId()
        {
            DataRepository   dataRepository = this.CreateDataRepository();
            Person           reader1        = new Reader("", "", 0, "");
            Person           reader2        = new Reader("", "", 0, "");
            Item             book1          = new Book("", null, 0, "");
            Item             book2          = new Book("", null, 0, "");
            StateDescription state1         = new BookDescription(book1, "", new DateTime(1990, 1, 1), Purpose.All, Kind.Criminal);
            StateDescription state2         = new BookDescription(book2, "", new DateTime(1990, 1, 1), Purpose.All, Kind.Criminal);
            Event            ev1            = new Rental(state1, reader1, DateTime.Now);
            Event            ev2            = new Rental(state2, reader2, DateTime.Now);

            dataRepository.addEvent(ev1);
            Assert.AreEqual <Event>(ev1, dataRepository.getEvent(0));
            dataRepository.updateEvent(0, ev2);
            Assert.AreEqual <Event>(ev2, dataRepository.getEvent(0));
        }
        public void UpdateBookDescriptionTest()
        {
            //preperation is the same as in addBook
            DataRepository dataRepository      = new DataRepository();
            var            MockBookDescription = RandomBookDescription();

            dataRepository.AddBookDescription(MockBookDescription.Object);
            BookDescription bookkDescription = dataRepository.GetBookDescription(0);

            Assert.AreEqual(bookkDescription, MockBookDescription.Object);

            //test if book can be changed
            var MockBookDescription2 = RandomBookDescription();

            dataRepository.UpdateBookDescription(0, MockBookDescription2.Object);

            Assert.AreEqual(MockBookDescription2.Object, dataRepository.GetBookDescription(0));
        }
Ejemplo n.º 25
0
        public void SetDescriutionTest()
        {
            XDocument       fb2         = XDocument.Load(InputPath);
            BookDescription description = fb2.GetDescription();

            description.Fill(BookAuthorFirstName, BookAuthorFamilyName, Title, FileAuthorFirstName,
                             FileAuthorFamilyName, ProgramName);

            fb2.SetDescription(description);
            description = fb2.GetDescription();

            Assert.AreEqual(BookAuthorFirstName, description.BookAuthorFirstName);
            Assert.AreEqual(BookAuthorFamilyName, description.BookAuthorFamilyName);
            Assert.AreEqual(Title, description.Title);
            Assert.AreEqual(FileAuthorFirstName, description.FileAuthorFirstName);
            Assert.AreEqual(FileAuthorFamilyName, description.FileAuthorFamilyName);
            CollectionAssert.AreEqual(_programsUsed, description.ProgramsUsed);
            Assert.AreEqual(_date, description.Date);
        }
Ejemplo n.º 26
0
        public ConstDataHolder()
        {
            Readers = new List <Reader>();
            Readers.Add(new Reader("Dominik", "Karski"));
            Readers.Add(new Reader("Sebastian", "Kujawski"));
            Readers.Add(new Reader("Joe", "Biden"));
            Readers.Add(new Reader("Donald", "Trump"));

            BookDescriptions = new List <BookDescription>();
            var book = new BookDescription("Metro 2033", "Dmitry Glukhovsky", "Insignis");

            BookDescriptions.Add(book);
            var book1 = new BookDescription("Diuna", "Frank Herbert", "Rebis");

            BookDescriptions.Add(book1);
            var book2 = new BookDescription("Harry Potter", "J.K.Rowling", "Media Rodzina");

            BookDescriptions.Add(book2);
            var book3 = new BookDescription("Pan Lodowego Ogrodu (tom 1)", "Jarosław Grzędowicz", "Fabryka Słów");

            BookDescriptions.Add(book3);
            var book4 = new BookDescription("Pan Lodowego Ogrodu (tom 2)", "Jarosław Grzędowicz", "Fabryka Słów");

            BookDescriptions.Add(book4);

            BookCopies = new List <BookCopy>();
            BookCopies.Add(new BookCopy(book, new DateTime(2015, 5, 23), "1234567890123"));
            BookCopies.Add(new BookCopy(book, new DateTime(2005, 2, 22), "2234567890123"));
            BookCopies.Add(new BookCopy(book1, new DateTime(2012, 2, 1), "3234567890123"));
            BookCopies.Add(new BookCopy(book2, new DateTime(1999, 1, 13), "4234567890123"));
            BookCopies.Add(new BookCopy(book3, new DateTime(2003, 5, 27), "5234567890123"));

            BookEvents = new List <BookEvent>();
            BookEvents.Add(new Rent(BookCopies[0], Readers[2], new DateTime(2017, 4, 4)));
            BookEvents.Add(new Rent(BookCopies[4], Readers[0], new DateTime(2017, 11, 6)));
            BookEvents.Add(new Rent(BookCopies[2], Readers[1], new DateTime(2018, 3, 3)));
            BookEvents.Add(new Rent(BookCopies[1], Readers[3], new DateTime(2018, 4, 4)));
            BookEvents.Add(new Rent(BookCopies[3], Readers[2], new DateTime(2020, 5, 5)));

            BookEvents.Add(new Return(BookCopies[0], Readers[2], new DateTime(2020, 10, 10)));
            BookEvents.Add(new Return(BookCopies[1], Readers[3], new DateTime(2020, 11, 6)));
        }
        public void DeleteBookDescriptionTest()
        {
            DataRepository dataRepository      = new DataRepository();
            var            MockBookDescription = RandomBookDescription();

            dataRepository.AddBookDescription(MockBookDescription.Object);
            BookDescription bookDescription = dataRepository.GetBookDescription(0);

            Assert.AreEqual(bookDescription, MockBookDescription.Object);

            dataRepository.DeleteBookDescription(0);

            //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(0, dataContext.Books.Count());

            //Test object given by getAllBooks method
            Assert.AreEqual(0, dataRepository.GetAllBookDescriptions().Count());
        }
        public LargeDataFillerImpl()
        {
            people = new List <Person>();
            items  = new Dictionary <string, Item>();
            states = new List <StateDescription>();
            events = new ObservableCollection <Event>();

            for (int i = 0; i < 10; i++)
            {
                Author author = new Author(randomString(), randomString(), random.Next(100), randomString());
                Reader reader = new Reader(randomString(), randomString(), random.Next(100), randomString());

                people.Add(author);
                people.Add(reader);

                Book book = new Book(randomString(), author, random.Next(1000), randomString());
                items.Add(book.Id, book);

                BookDescription state = new BookDescription(book, randomString(), new DateTime(random.Next(1500, 2000), random.Next(1, 12), random.Next(1, 27)), Purpose.All, Kind.Criminal);
                states.Add(state);

                events.Add(new Rental(state, reader, DateTime.Now));
            }
        }
 public abstract void DeleteBookDescription(BookDescription bookDescription);
 public abstract void AddBookDescription(BookDescription bookDescription);
        public static DataContext Deserialize(string filename)
        {
            DataContext     dataContext = new DataContext();
            SerializeHelper helper      = new SerializeHelper();
            string          data        = System.IO.File.ReadAllText(filename);

            var dataList = data.Split('\n');

            for (int i = 0; i < dataList.Length; i++)
            {
                if (!string.IsNullOrEmpty(dataList[i]))
                {
                    var splittedLine = dataList[i].Split(',');

                    Type type = Type.GetType(splittedLine[0]);
                    if (type != null)
                    {
                        object obj = Activator.CreateInstance(type);

                        switch (helper.typeDict[type])
                        {
                        case 0:
                            Person person = (Person)obj;
                            if (!person.Deserialize(splittedLine, helper))
                            {
                                break;
                            }
                            helper.PeopleDictionary.Add(splittedLine[1], person);
                            dataContext.PeopleCatalog.Add(person);
                            break;

                        case 1:
                            Reader reader = (Reader)obj;
                            if (!reader.Deserialize(splittedLine, helper))
                            {
                                break;
                            }
                            helper.PeopleDictionary.Add(splittedLine[1], reader);
                            dataContext.PeopleCatalog.Add(reader);
                            break;

                        case 2:
                            Author author = (Author)obj;
                            if (!author.Deserialize(splittedLine, helper))
                            {
                                break;
                            }
                            helper.PeopleDictionary.Add(splittedLine[1], author);
                            dataContext.PeopleCatalog.Add(author);
                            break;

                        case 3:
                            Item item = (Item)obj;
                            if (!item.Deserialize(splittedLine, helper))
                            {
                                break;
                            }
                            helper.ItemsDictionary.Add(splittedLine[1], item);
                            dataContext.ItemsCatalog.Add(item.Id, item);
                            break;

                        case 4:
                            Book book = (Book)obj;
                            if (!book.Deserialize(splittedLine, helper))
                            {
                                break;
                            }
                            helper.ItemsDictionary.Add(splittedLine[1], book);
                            dataContext.ItemsCatalog.Add(book.Id, book);
                            break;

                        case 5:
                            StateDescription stateDescription = (StateDescription)obj;
                            if (!stateDescription.Deserialize(splittedLine, helper))
                            {
                                break;
                            }
                            helper.StatesDictionary.Add(splittedLine[1], stateDescription);
                            dataContext.StatesCatalog.Add(stateDescription);

                            break;

                        case 6:
                            BookDescription bookDescription = (BookDescription)obj;
                            if (!bookDescription.Deserialize(splittedLine, helper))
                            {
                                break;
                            }
                            helper.StatesDictionary.Add(splittedLine[1], bookDescription);
                            dataContext.StatesCatalog.Add(bookDescription);
                            break;

                        case 7:
                            Event ev = (Event)obj;
                            if (!ev.Deserialize(splittedLine, helper))
                            {
                                break;
                            }
                            dataContext.EventsCatalog.Add(ev);
                            break;

                        case 8:
                            Rental rental = (Rental)obj;
                            if (!rental.Deserialize(splittedLine, helper))
                            {
                                break;
                            }
                            dataContext.EventsCatalog.Add(rental);
                            break;
                        }
                    }
                }
            }
            return(dataContext);
        }