public async Task AddUserLoginTest() { //Arrange const string eventId = "eventId"; var dateTime = new DateTime(2013, 2, 13); var domain = new DomainActionData(); var httpMessageEntity = new StatHttpMessageV2Entity(); var userLoginEntity = new StatUserLoginV2Entity(); var guidWrapper = new Mock <IGuidWrapper>(); var dateTimeWrapper = new Mock <IDateTimeWrapper>(); var httpMessageRepository = new Mock <IRepository <StatHttpMessageV2Entity> >(); var userLoginRepository = new Mock <IRepository <StatUserLoginV2Entity> >(); var repositoryFactory = new Mock <IRepositoryFactory>(); var statEntityFactory = new Mock <IStatEntityFactory>(); guidWrapper.Setup(m => m.Generate()).Returns(eventId); dateTimeWrapper.Setup(m => m.CurrentDateTime()).Returns(dateTime); repositoryFactory.Setup(m => m.Create <StatHttpMessageV2Entity>(Tables.StatHttpMessageV2)).Returns(httpMessageRepository.Object); repositoryFactory.Setup(m => m.Create <StatUserLoginV2Entity>(Tables.StatUserLoginV2)).Returns(userLoginRepository.Object); statEntityFactory.Setup(m => m.CreateHttpMessageEntity(eventId, dateTime, domain)).Returns(httpMessageEntity); statEntityFactory.Setup(m => m.CreateUserLoginEntity(eventId, dateTime, domain)).Returns(userLoginEntity); httpMessageRepository.Setup(m => m.AddAsync(httpMessageEntity, It.IsAny <CancellationToken>())).Returns(async() => httpMessageEntity); userLoginRepository.Setup(m => m.AddAsync(userLoginEntity, It.IsAny <CancellationToken>())).Returns(async() => userLoginEntity); var userRegistrationService = new StatUserLoginService(repositoryFactory.Object, statEntityFactory.Object, guidWrapper.Object, dateTimeWrapper.Object); //Act & Assert await userRegistrationService.AddUserLogin(domain); }
public Task AddUserLogin(DomainActionData domain) { string eventId = GuidWraper.Generate(); DateTime curDateTime = DateTimeWrapper.CurrentDateTime(); StatUserLoginV2Entity userLoginEntity = StatEntityFactory.CreateUserLoginEntity(domain); ITableRepository <StatUserLoginV2Entity> userLoginRepository = RepositoryFactory.Create <StatUserLoginV2Entity>(); return(userLoginRepository.AddAsync(userLoginEntity)); }