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); } }
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,"); } }