예제 #1
0
        public void BuildTestNotUniqueBooksFromProviders()
        {
            const string providerName1 = "Name1";
            const string providerName2 = "Name2";

            var book1 = new Book("1", "1", "1");
            var book2 = new Book("2", "2", "2");
            var book3 = new Book("3", "3", "3");

            var bookWrapper1 = new BookWrapper(book1, new[] { providerName1 });
            var bookWrapper2 = new BookWrapper(book2, new[] { providerName1, providerName2 });
            var bookWrapper3 = new BookWrapper(book3, new[] { providerName2 });

            using (MocksRecord())
            {
                provider1.Stub(p => p.Name).Return(providerName1);
                provider2.Stub(p => p.Name).Return(providerName2);

                provider1.Expect(p => p.SelectAll()).Return(new[] { book1, book2 });
                provider2.Expect(p => p.SelectAll()).Return(new[] { book2, book3 });

                bookFactory.Expect(f => f.Create(book1, new[] { providerName1 })).Return(bookWrapper1);
                bookFactory.Expect(f => f.Create(book2, new[] { providerName1, providerName2 })).Return(bookWrapper2);
                bookFactory.Expect(f => f.Create(book3, new[] { providerName2 })).Return(bookWrapper3);

                bookIndex.Expect(i => i.Rebuild(new[] { bookWrapper1, bookWrapper2, bookWrapper3 }));
            }

            bookIndexBuilder.Build();
        }
예제 #2
0
        public void BuildTestWhenProviderThrowsException()
        {
            const string providerName1 = "Name1";
            const string providerName2 = "Name2";

            var book1 = new Book("1", "1", "1");
            var book2 = new Book("2", "2", "2");

            var bookWrapper1 = new BookWrapper(book1, new [] { providerName2 });
            var bookWrapper2 = new BookWrapper(book2, new [] { providerName2 });

            using (MocksRecord())
            {
                provider1.Stub(p => p.Name).Return(providerName1);
                provider2.Stub(p => p.Name).Return(providerName2);

                provider1.Expect(p => p.SelectAll()).Throw(new Exception("FATAL CRASH!!111"));
                provider2
                .Expect(p => p.SelectAll())
                .Return(new[] { book1, book2 });

                bookFactory.Expect(f => f.Create(book1, new[] { providerName2 })).Return(bookWrapper1);
                bookFactory.Expect(f => f.Create(book2, new[] { providerName2 })).Return(bookWrapper2);

                bookIndex.Expect(i => i.Rebuild(new[] { bookWrapper1, bookWrapper2 }));
            }

            bookIndexBuilder.Build();
        }
        public void BuildTestForNormalQuery()
        {
            var query = Guid.NewGuid().ToString();
            var book1 = new BookWrapper(new Book("isbn1", "author1", "title1"), new[] { "provider1" });
            var book2 = new BookWrapper(new Book("isbn2", "author2", "title2"), new[] { "provider1", "provider2" });
            var book3 = new BookWrapper(new Book("isbn3", "author3", "title3"), new[] { "provider2" });

            using (MocksRecord())
            {
                bookIndex.Expect(i => i.Search(query, maxSearchResultsCount)).Return(new[] { book1, book2, book3 });
            }

            var expected = new BookListViewModel
            {
                Query = query,
                Books = new[]
                {
                    new BookViewModel {
                        ISBN = book1.Book.ISBN, Author = book1.Book.Author, Title = book1.Book.Title, Providers = book1.Providers
                    },
                    new BookViewModel {
                        ISBN = book2.Book.ISBN, Author = book2.Book.Author, Title = book2.Book.Title, Providers = book2.Providers
                    },
                    new BookViewModel {
                        ISBN = book3.Book.ISBN, Author = book3.Book.Author, Title = book3.Book.Title, Providers = book3.Providers
                    },
                }
            };
            var actual = bookListViewModelBuilder.Build(query);

            actual.ShouldBeEquivalentTo(expected);
        }
예제 #4
0
        public void CreateBookWrapperTestNormalBehavior()
        {
            var book      = new Book("isbn", "author", "title");
            var providers = new[] { "provider1", "provider2" };

            var expected = new BookWrapper(book, providers);
            var actual   = bookFactory.Create(book, providers);

            actual.ShouldBeEquivalentTo(expected);
        }
예제 #5
0
        public void SearchTestByUniqueTitle()
        {
            var foundBooks = bookIndex.Search("Concrete Technology", 50);

            foundBooks.Should().HaveCount(1);

            var expected = new BookWrapper(new Book("978-953-51-2650-8", "Faris Yilmaz", "High Performance Concrete Technology and Applications"), new[] { "provider1" });
            var actual   = foundBooks[0];

            actual.ShouldBeEquivalentTo(expected);
        }
예제 #6
0
        public void SearchTestByUniqueAuthor()
        {
            var foundBooks = bookIndex.Search("Sonia Carabineiro", 50);

            foundBooks.Should().HaveCount(1);

            var expected = new BookWrapper(new Book("978-953-51-2642-3", "Sonia A.C. Carabineiro", "Advances in Carbon Nanostructures"), new[] { "provider1", "provider3" });
            var actual   = foundBooks[0];

            actual.ShouldBeEquivalentTo(expected);
        }
예제 #7
0
        public void SearchTestByIsbnPrefix()
        {
            var foundBooks = bookIndex.Search("978-953-51-266", 50);

            foundBooks.Should().HaveCount(1);

            var expected = new BookWrapper(new Book("978-953-51-2660-7", "Theodore Hromadka ", "Topics in Climate Modeling"), new[] { "provider2" });
            var actual   = foundBooks[0];

            actual.ShouldBeEquivalentTo(expected);
        }
예제 #8
0
        public void SearchTestByNonUniqueTitle()
        {
            var foundBooks = bookIndex.Search("Applications", 50);

            foundBooks.Should().HaveCount(2);

            var expected1 = new BookWrapper(new Book("978-953-51-2650-8", "Faris Yilmaz", "High Performance Concrete Technology and Applications"), new[] { "provider1" });
            var expected2 = new BookWrapper(new Book("978-953-51-2636-2", "Mohamed Amine Fakhfakh", "Modeling and Simulation for Electric Vehicle Applications"), new[] { "provider2" });
            var actual    = foundBooks;

            actual.ShouldBeEquivalentTo(new[] { expected1, expected2 });
        }
예제 #9
0
        public void SearchTestByNonUniqueAuthor()
        {
            var foundBooks = bookIndex.Search("Faris Yilmaz", 50);

            foundBooks.Should().HaveCount(2);

            var expected1 = new BookWrapper(new Book("978-953-51-2650-8", "Faris Yilmaz", "High Performance Concrete Technology and Applications"), new[] { "provider1" });
            var expected2 = new BookWrapper(new Book("978-953-51-2690-4", "Faris Yilmaz", "Conducting Polymers"), new[] { "provider3" });
            var actual    = foundBooks;

            actual.ShouldBeEquivalentTo(new[] { expected1, expected2 });
        }
예제 #10
0
        public static BookWrapper LoadExcel(sbyte[] sfile)
        {
            byte[] file = new byte[sfile.Length];
            Buffer.BlockCopy(sfile, 0, file, 0, sfile.Length);
            MemoryStream ms = new MemoryStream(file);

            HSSFWorkbook book = new HSSFWorkbook(ms);

            BookWrapper wrapper = new BookWrapper(book);

            return wrapper;
        }
예제 #11
0
        public static BookWrapper CreateExcel()
        {
            HSSFWorkbook book = new HSSFWorkbook();
            BookWrapper wrapper = new BookWrapper(book);
            ////create a entry of DocumentSummaryInformation
            DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
            dsi.Company = "NPOI Team";
            book.DocumentSummaryInformation = dsi;

            ////create a entry of SummaryInformation
            SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
            si.Subject = "NPOI SDK Example";
            book.SummaryInformation = si;

            return wrapper;
        }
예제 #12
0
        static void Main(string[] args)
        {
            BookWrapper  wrapper  = ExcelUtil.CreateExcel();
            SheetWrapper swrapper = wrapper.CreateSheet("Test");
            CellPos      pos      = CellPos.CreateCellPos(0, 0);

            swrapper.SetText(pos, "Test");

            Console.WriteLine("Cell: " + swrapper.GetText(pos));
            Console.WriteLine("Cell Empty: " + swrapper.GetText(CellPos.CreateCellPos(1, 0)));

            sbyte[] t = wrapper.GetBytes();
            wrapper.Save("c:\\temp\\test.xlsx");


            BookWrapper  w2 = ExcelUtil.LoadExcel(t);
            SheetWrapper s2 = w2["Test"];

            Console.WriteLine(s2.GetText(CellPos.CreateCellPos(0, 0)));
        }
예제 #13
0
 public SheetWrapper(BookWrapper parent, HSSFSheet sheet)
 {
     _sheet = sheet;
     _parent = parent;
 }