Exemplo n.º 1
0
        public void TestCreateBookUseCtorOk()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <EfCoreContext>();

            using (var context = new EfCoreContext(options))
            {
                context.Database.EnsureCreated();

                var utData  = context.SetupSingleDtoAndEntities <CreatorOfBooksDto>();
                var service = new CrudServices(context, utData.Wrapped);

                //ATTEMPT
                var dto = new CreatorOfBooksDto
                {
                    Title       = "Hello",
                    Price       = 50,
                    PublishedOn = new DateTime(2010, 1, 1),
                    Authors     = new List <Author> {
                        new Author {
                            Name = "test"
                        }
                    }
                };
                service.CreateAndSave(dto, "ctor");

                //VERIFY
                service.IsValid.ShouldBeTrue(service.GetAllErrors());
                context.Set <Book>().Count().ShouldEqual(1);
                var book = context.Find <Book>(1);
                book.ActualPrice.ShouldEqual(dto.Price);
            }
        }
Exemplo n.º 2
0
        public void TestCreateBookBothStaticMethodAndCtorBad()
        {
            //SETUP
            var options = SqliteInMemory.CreateOptions <EfCoreContext>();

            using (var context = new EfCoreContext(options))
            {
                context.Database.EnsureCreated();

                var utData  = context.SetupSingleDtoAndEntities <CreatorOfBooksDto>();
                var service = new CrudServices(context, utData.Wrapped);

                //ATTEMPT
                var dto = new CreatorOfBooksDto();
                var ex  = Assert.Throws <InvalidOperationException>(() => service.CreateAndSave(dto));

                //VERIFY
                ex.Message.ShouldStartWith("There are multiple ctor/static method,");
            }
        }