Example #1
0
 public BooksController(IBookStore store, ImageUploader imageUploader,
                        BookDetailLookup bookDetailLookup)
 {
     _store            = store;
     _imageUploader    = imageUploader;
     _bookDetailLookup = bookDetailLookup;
 }
        public void TestProcessBook()
        {
            FakeBookStore    bookStore        = new FakeBookStore();
            BookDetailLookup bookDetailLookup = NewBookDetailLookup();

            bookDetailLookup.ProcessBook(bookStore, 3);
            Assert.Equal(3, bookStore.UpdatedBook.Id);
            Assert.Contains("JavaScript", bookStore.UpdatedBook.Title);
        }
        public void TestProcessBook()
        {
            FakeBookStore    bookStore        = new FakeBookStore();
            BookDetailLookup bookDetailLookup = NewBookDetailLookup();

            bookDetailLookup.ProcessBook(bookStore, 3);
            Assert.Equal(3, bookStore.UpdatedBook.Id);
            Assert.Equal("Test-Driven JavaScript Development", bookStore.UpdatedBook.Title);
            Assert.Equal("Christian Johansen", bookStore.UpdatedBook.Author);
        }
        public void TestUpdateBookFromJsonBackendError()
        {
            var  json = System.IO.File.ReadAllText(@"testdata\BackendError.json");
            Book book = new Book();

            BookDetailLookup.UpdateBookFromJson(json, book);
            Assert.Equal(null, book.Title);
            Assert.Equal(null, book.Author);
            Assert.Equal(null, book.PublishedDate);
            Assert.Equal(null, book.Description);
        }
        public void TestLoop()
        {
            BookDetailLookup bookDetailLookup = NewBookDetailLookup();

            bookDetailLookup.CreateTopicAndSubscription();
            var cancel   = new CancellationTokenSource();
            var pullTask = bookDetailLookup.StartPullLoop(new FakeBookStore(), cancel.Token);

            cancel.CancelAfter(100);
            pullTask.Wait();
        }
        public void TestUpdateBookFromJsonRedFern()
        {
            var  json = System.IO.File.ReadAllText(@"testdata\RedFern.json");
            Book book = new Book();

            BookDetailLookup.UpdateBookFromJson(json, book);
            Assert.Equal("Where the Red Fern Grows", book.Title);
            Assert.Equal("Wilson Rawls", book.Author);
            Assert.Equal(new DateTime(1978, 1, 1), book.PublishedDate);
            Assert.Contains("Ozarks", book.Description);
            Assert.Equal("http://books.google.com/books/content?" +
                         "id=-ddvPQAACAAJ&printsec=frontcover&img=1&zoom=1&source=gbs_api",
                         book.ImageUrl);
        }
Example #7
0
        /// <summary>Registers the type mappings with the Unity container.</summary>
        /// <param name="container">The unity container to configure.</param>
        public static void RegisterTypes(IUnityContainer container)
        {
            LibUnityConfig.RegisterTypes(container);
            var bookDetailLookup = new BookDetailLookup(LibUnityConfig.ProjectId);

            bookDetailLookup.CreateTopicAndSubscription();
            container.RegisterInstance <BookDetailLookup>(bookDetailLookup);

            container.RegisterInstance <ImageUploader>(
                new ImageUploader(
                    LibUnityConfig.GetConfigVariable("GoogleCloudSamples:BucketName")
                    )
                );
        }
        public void TestPubsub()
        {
            BookDetailLookup bookDetailLookup = NewBookDetailLookup();

            bookDetailLookup.CreateTopicAndSubscription();
            bookDetailLookup.EnqueueBook(45);
            var cancel   = new CancellationTokenSource();
            var pullTask = Task.Factory.StartNew(() => bookDetailLookup.PullLoop((long bookId) =>
            {
                Assert.Equal(45, bookId);
                cancel.Cancel();
            }, cancel.Token));

            pullTask.Wait();
        }
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            // Launch a thread that watches the book detail subscription.
            var container = App_Start.UnityConfig.GetConfiguredContainer();
            LibUnityConfig.RegisterTypes(container);
            var bookDetailLookup = new BookDetailLookup(LibUnityConfig.ProjectId,
                logger: LogTicker.Instance);
            bookDetailLookup.CreateTopicAndSubscription();
            var pullTask = bookDetailLookup.StartPullLoop(container.Resolve<IBookStore>(),
                new CancellationTokenSource().Token);
        }
Example #10
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            // Launch a thread that watches the book detail subscription.
            var container = App_Start.UnityConfig.GetConfiguredContainer();

            LibUnityConfig.RegisterTypes(container);
            var bookDetailLookup = new BookDetailLookup(LibUnityConfig.ProjectId,
                                                        logger: LogTicker.Instance);

            bookDetailLookup.CreateTopicAndSubscription();
            var pullTask = bookDetailLookup.StartPullLoop(container.Resolve <IBookStore>(),
                                                          new CancellationTokenSource().Token);
        }
 public BooksController(IBookStore store, BookDetailLookup bookDetailLookup)
 {
     _store = store;
     _bookDetailLookup = bookDetailLookup;
 }