public void Test_Account_Create() { DbContextOptionsBuilder optionsBuilder = new DbContextOptionsBuilder(); optionsBuilder.UseInMemoryDatabase("test1"); var context = new ApplicationDbContext(optionsBuilder.Options); AccountControllerV2 controller = new AccountControllerV2(context); IActionResult result = controller.Create(new Account() { Id = 1, Name = "Checking", SSN = "000-05-1120" }); Assert.True(result != null); Assert.True(context.Accounts.Count() == 1); Assert.True(context.Accounts.First().Id == 1); Assert.True(context.Accounts.First().Name == "Checking"); Assert.True(context.Accounts.First().DateCreated != null); Assert.True(context.Accounts.First().SSN == "000-05-1120"); }
public void Test_Account_Create_With_Validation() { //setup DbContextOptionsBuilder optionsBuilder = new DbContextOptionsBuilder(); optionsBuilder.UseInMemoryDatabase("test2"); var context = new ApplicationDbContext(optionsBuilder.Options); AccountControllerV2 controller = new AccountControllerV2(context); //act IActionResult result = controller.Create(new Account() { Id = 1, Name = "Checking", SSN = "000-05-1120" }); Assert.True(result != null); // the result isn't null Assert.True(context.Accounts.Count() == 1); // the result has the count we expect Assert.True(context.Accounts.First().Id == 1); // the record has the id we expect Assert.True(context.Accounts.First().Name == "Checking"); // it has the right name Assert.True(context.Accounts.First().DateCreated != null); // we saved a date Assert.True(context.Accounts.First().SSN == "000-05-1120"); // test that creating a blank name returns a 422 code IActionResult result2 = controller.Create(new Account() { Id = 1, Name = "" }); Assert.True((result2 as StatusCodeResult).StatusCode == 422); // test that creating duplicate names returns 4222 IActionResult resultUnique = controller.Create(new Account() { Id = 2, Name = "Checking1" }); IActionResult resultUniqueTest = controller.Create(new Account() { Id = 2, Name = "Checking1" }); Assert.True((result2 as StatusCodeResult).StatusCode == 422); }