public async Task ItemCase_Delete_DoesDelete() { // Arrange ItemList itemList = new ItemList { Name = Guid.NewGuid().ToString() }; await itemList.Create(DbContext); Item item = new Item { Name = Guid.NewGuid().ToString(), Description = Guid.NewGuid().ToString(), Enabled = true, ItemListId = itemList.Id }; await item.Save(DbContext); ItemCase itemCase = new ItemCase { MicrotingSdkSiteId = 24, MicrotingSdkCaseId = 34, MicrotingSdkeFormId = 234, Status = 66, ItemId = item.Id }; await itemCase.Create(DbContext); // Act itemCase = await DbContext.ItemCases.AsNoTracking().FirstOrDefaultAsync(); await itemCase.Delete(DbContext); List <ItemCase> itemCases = DbContext.ItemCases.AsNoTracking().ToList(); List <ItemCaseVersion> itemCaseVersions = DbContext.ItemCaseVersions.AsNoTracking().ToList(); // Assert Assert.AreEqual(1, itemCases.Count); Assert.AreEqual(2, itemCaseVersions.Count); Assert.AreEqual(itemCase.MicrotingSdkSiteId, itemCases[0].MicrotingSdkSiteId); Assert.AreEqual(itemCase.MicrotingSdkCaseId, itemCases[0].MicrotingSdkCaseId); Assert.AreEqual(itemCase.MicrotingSdkeFormId, itemCases[0].MicrotingSdkeFormId); Assert.AreEqual(itemCase.Status, itemCases[0].Status); Assert.AreEqual(itemCase.ItemId, itemCases[0].ItemId); Assert.AreEqual(Constants.WorkflowStates.Removed, itemCases[0].WorkflowState); Assert.AreEqual(itemCase.Id, itemCases[0].Id); Assert.AreEqual(2, itemCases[0].Version); Assert.AreEqual(itemCase.MicrotingSdkSiteId, itemCaseVersions[0].MicrotingSdkSiteId); Assert.AreEqual(itemCase.MicrotingSdkCaseId, itemCaseVersions[0].MicrotingSdkCaseId); Assert.AreEqual(itemCase.MicrotingSdkeFormId, itemCaseVersions[0].MicrotingSdkeFormId); Assert.AreEqual(itemCase.Status, itemCaseVersions[0].Status); Assert.AreEqual(itemCase.ItemId, itemCaseVersions[0].ItemId); Assert.AreEqual(Constants.WorkflowStates.Created, itemCaseVersions[0].WorkflowState); Assert.AreEqual(itemCase.Id, itemCaseVersions[0].ItemCaseId); Assert.AreEqual(1, itemCaseVersions[0].Version); Assert.AreEqual(itemCase.MicrotingSdkSiteId, itemCaseVersions[1].MicrotingSdkSiteId); Assert.AreEqual(itemCase.MicrotingSdkCaseId, itemCaseVersions[1].MicrotingSdkCaseId); Assert.AreEqual(itemCase.MicrotingSdkeFormId, itemCaseVersions[1].MicrotingSdkeFormId); Assert.AreEqual(itemCase.Status, itemCaseVersions[1].Status); Assert.AreEqual(itemCase.ItemId, itemCaseVersions[1].ItemId); Assert.AreEqual(Constants.WorkflowStates.Removed, itemCaseVersions[1].WorkflowState); Assert.AreEqual(itemCase.Id, itemCaseVersions[1].ItemCaseId); Assert.AreEqual(2, itemCaseVersions[1].Version); }