Я смоделировал некоторые таблицы в своей базе данных, и я также использовал транзакцию начала, как смоделировать транзакцию начала в моем коде?
Я использовал транзакцию начала в API, и я не получилЛюбая идея, как реализовать макетирование для этой транзакции, здесь код, который я написал для тестового примера:
[Fact]
public void InsertPeople_OkResult()
{
//ILoggerMocking
var serviceProvider = new ServiceCollection()
.AddLogging()
.BuildServiceProvider();
var factory = serviceProvider.GetService<ILoggerFactory>();
var logger = factory.CreateLogger<CreateProfileAPIController>();
//IConfigurationMock
var datasourcemck = new Mock<IConfigurationSection>();
datasourcemck.Setup(x => x.Value).Returns("3");
var entmk = new Mock<IConfigurationSection>();
entmk.Setup(x => x.Value).Returns("2000");
var confg = new Mock<IConfigurationRoot>();
confg.Setup(s => s.GetSection("DataSourceId")).Returns(datasourcemck.Object);
confg.Setup(s => s.GetSection("EntityId")).Returns(entmk.Object);
//Act
peopleRepository = new PeopleRepository(createProfileTestCasesPreparations.mockContext.Object, confg.Object, logger);
//Arrange
var data = new SunBook.Models.ViewModel.PersonalDetailsModel()
{
People = new SunBook.Models.People()
{
FirstName = "Pj",
LastName = "ff",
Gender = "male",
LastChangedOn = DateTime.Now,
Suffix = "sr",
PeopleTagId = 2
},
EntityPeople = new SunBook.Models.EntityPeople()
{
Title = "dev",
Department = "labs",
LastChangedOn = DateTime.Now,
DataSourceId = 3,
FromDate = DateTime.Now
},
PeopleTagId = 2,
TagId = 1
};
peopleRepository.AddPersonalDetails(data);
var cont = new ContactDetailsModel()
{
PeopleAddress = new List<SunBook.Models.PeopleAddress>()
{
new SunBook.Models.PeopleAddress()
{
PersonId =data.People.PersonId,
Address1 ="Vzag",
Address2 ="MVP",
AddressTypeId =1,
City ="Vizag",
Country ="Ind",
LastChangedOn =DateTime.Now,
DataSourceId =3,
ZipCode ="53545",
State ="ME"
}
},
PeopleEmail = new List<SunBook.Models.PeopleEmail>()
{
new SunBook.Models.PeopleEmail()
{
EmailAddress ="abc@gmail.com",
DataSourceId =3,
EmailTypeId =1,
LastChangedOn =DateTime.Now,
PersonId =data.People.PersonId,
IsPrimary =true
}
},
PeoplePhones = new List<SunBook.Models.PeoplePhone>()
{
new SunBook.Models.PeoplePhone()
{
PersonId =data.People.PersonId,
PhoneNumber ="985646684",
DataSourceId =3,
LastChangedOn =DateTime.Now,
PhoneTypeId =1,
IsPrimary =true
}
},
PersonId = data.People.PersonId,
PeopleTagId = 2
};
peopleRepository.AddContactDetails(cont);
//Assert
Assert.NotEqual<int>(0, data.People.PersonId);
}
Может ли кто-нибудь мне помочь, как смоделировать транзакцию в приведенном выше случае