public async Task Delete_given_id_deletes_wine()
        {
            var repository = new Mock <IWineRepository>();

            var controller = new WinesController(repository.Object);

            await controller.Delete(42);

            repository.Verify(s => s.DeleteAsync(42));
        }
        public async Task Delete_given_repository_returns_false_returns_NotFound()
        {
            var repository = new Mock <IWineRepository>();

            var controller = new WinesController(repository.Object);

            var delete = await controller.Delete(42);

            Assert.IsType <NotFoundResult>(delete);
        }
        public async Task Delete_given_valid_returns_NoContent()
        {
            var repository = new Mock <IWineRepository>();

            repository.Setup(s => s.DeleteAsync(42)).ReturnsAsync(true);
            var controller = new WinesController(repository.Object);

            var delete = await controller.Delete(42);

            Assert.IsType <NoContentResult>(delete);
        }
        public async Task Get_given_non_existing_returns_NotFound()
        {
            var repo       = new Mock <IWineRepository>();
            var controller = new WinesController(repo.Object);

            var get = await controller.Get(42);

            var res = get.Result;

            Assert.IsType <NotFoundResult>(res);
        }
        public async Task Post_given_valid_dto_returns_CreatedAtAction()
        {
            var dto  = new WineDTO();
            var repo = new Mock <IWineRepository>();

            repo.Setup(s => s.CreateAsync(It.IsAny <WineDTO>())).ReturnsAsync(1);
            var controller = new WinesController(repo.Object);

            var post = await controller.Post(dto);

            Assert.IsType <CreatedAtActionResult>(post.Result);
        }
        public async Task Get_existing_id_returns_dto()
        {
            var dto  = new WineDTO();
            var repo = new Mock <IWineRepository>();

            repo.Setup(s => s.FindAsync(42)).ReturnsAsync(dto);
            var controller = new WinesController(repo.Object);

            var get = await controller.Get(42);

            Assert.Equal(dto, get.Value);
        }
        public async Task Put_given_repository_returns_false_returns_NotFound()
        {
            var repository = new Mock <IWineRepository>();

            var controller = new WinesController(repository.Object);

            var dto = new WineDTO();

            var put = await controller.Put(42, dto);

            Assert.IsType <NotFoundResult>(put);
        }
        public async Task Put_returns_NoContent()
        {
            var dto        = new WineDTO();
            var repository = new Mock <IWineRepository>();

            repository.Setup(s => s.UpdateAsync(dto)).ReturnsAsync(true);
            var controller = new WinesController(repository.Object);

            var put = await controller.Put(42, dto);

            Assert.IsType <NoContentResult>(put);
        }
        public async Task Put_given_dto_updates_wine()
        {
            var repository = new Mock <IWineRepository>();

            var controller = new WinesController(repository.Object);

            var dto = new WineDTO();

            await controller.Put(42, dto);

            repository.Verify(s => s.UpdateAsync(dto));
        }
        public async Task GetWines_returns_all()
        {
            IList <WineDTO> dtos = new List <WineDTO>()
            {
                new WineDTO()
            };
            var repo = new Mock <IWineRepository>();

            repo.Setup(s => s.ReadAsync()).ReturnsAsync(dtos);
            var controller = new WinesController(repo.Object);

            var get = await controller.Get();
        }
Beispiel #11
0
    static Server()
    {
        string dbUrl = Node.Process.Arguments[2];

        if (String.IsNullOrEmpty(dbUrl))
        {
            Debug.WriteLine("Usage: node cellar.server.js <database url>");
            Debug.WriteLine("Format of database url:");
            Debug.WriteLine("  mongodb://user:password@host:port/database");
            Debug.WriteLine(String.Empty);
            return;
        }

        CellarApplication cellarApplication = new CellarApplication();

        cellarApplication.Initialize(dbUrl, delegate(Exception initializationError) {
            if (initializationError != null)
            {
                Debug.WriteLine(initializationError.ToString());
                return;
            }

            Debug.WriteLine("Starting web application on port 8080...");
            string path = (string)Script.Literal("__dirname");

            ExpressApplication app = Express.Application();
            app.Use(Express.Static(path + "\\Content"));
            app.Get("/wines/:id", delegate(ExpressServerRequest request, ExpressServerResponse response) {
                WinesController controller = cellarApplication.CreateWinesController();
                controller.LookupWine(request, response);
            })
            .Get("/wines", delegate(ExpressServerRequest request, ExpressServerResponse response) {
                WinesController controller = cellarApplication.CreateWinesController();
                controller.QueryWines(request, response);
            });

            app.Listen(8080);
        });
    }