public void AddProjectCreatingCatchConflictExceptionTest() { const string projectId = "projectId"; const string actionType = "actionType"; var dateTime = new DateTime(2013, 2, 13); var domain = new DomainActionData(); var statProjectStateV2Entity = new StatProjectStateV3Entity(); var dateTimeWrapper = new Mock<IDateTimeWrapper>(); var statProjectStateRepository = new Mock<IRepository<StatProjectStateV3Entity>>(); var repositoryFactory = new Mock<IRepositoryFactory>(); var statEntityFactory = new Mock<IStatEntityFactory>(); dateTimeWrapper.Setup(m => m.CurrentDateTime()).Returns(dateTime); repositoryFactory.Setup(m => m.Create<StatProjectStateV3Entity>(Tables.StatProjectStateV3)).Returns(statProjectStateRepository.Object); statEntityFactory.Setup(m => m.CreateProjectCreatingEntity(dateTime, domain, projectId, actionType)).Returns(statProjectStateV2Entity); statProjectStateRepository.Setup(m => m.AddAsync(statProjectStateV2Entity, It.IsAny<CancellationToken>())).Throws(new ConflictException()); var statProjectCreatingService = new StatProjectStateService(repositoryFactory.Object, statEntityFactory.Object, dateTimeWrapper.Object); //Act & Assert ExceptionAssert.NotThrows<ConflictException>(()=> statProjectCreatingService.AddProjectState(domain, projectId, actionType).Wait()); }
public DomainStatProjectState StatProjectStateToDomain(StatProjectStateV3Entity entity, bool isSuccessfulUopload) { return new DomainStatProjectState { ProjectId = entity.ProjectId, DateTime = entity.DateTime, Producer = entity.Producer, Version = entity.Version, IsSuccessfulUpload = isSuccessfulUopload }; }
public void StatProjectStateToDomain() { //Arrange const bool isSuccessfulUopload = true; var projectStateEntity = new StatProjectStateV3Entity() { ProjectId = "projectId", ActionType = "actionType", DateTime = new DateTime(23456345344), Producer = "producer", Version = "version" }; var statMapper = new StatMapper(); //Act var domain = statMapper.StatProjectStateToDomain(projectStateEntity, isSuccessfulUopload); //Assert Assert.AreEqual(projectStateEntity.ProjectId, domain.ProjectId); Assert.AreEqual(projectStateEntity.Producer, domain.Producer); Assert.AreEqual(projectStateEntity.Version, domain.Version); Assert.AreEqual(projectStateEntity.DateTime,domain.DateTime); Assert.AreEqual(isSuccessfulUopload,domain.IsSuccessfulUpload); }
public void GetProjectStateForAbsentProjectIdTest() { //Arrange const string projectId1 = "projectId1"; var entity1 = new StatProjectStateV3Entity() { ProjectId = projectId1, ActionType = StatActionType.Avsx }; var entity2 = new StatProjectStateV3Entity() { ProjectId = projectId1, ActionType = StatActionType.Screenshot }; var entity3 = new StatProjectStateV3Entity() { ProjectId = projectId1, ActionType = StatActionType.Video }; var entities = new List<StatProjectStateV3Entity>() { entity1, entity2, entity3 }; var domain1 = new DomainStatProjectState(); var repositoryFactory = new Mock<IRepositoryFactory>(); var tableValueConverter = new Mock<ITableValueConverter>(); var statMapper = new Mock<IStatMapper>(); var repository = new FakeRepository<StatProjectStateV3Entity>(entities); repositoryFactory.Setup(m => m.Create<StatProjectStateV3Entity>(Tables.StatProjectStateV3)).Returns(repository); statMapper.Setup(m => m.StatProjectStateToDomain(It.Is<StatProjectStateV3Entity>(p => p.ProjectId == projectId1 && p.ActionType == null && p.Producer == null), false)).Returns(domain1); var statisticsService = new StatisticsService(repositoryFactory.Object, tableValueConverter.Object, statMapper.Object); //Act var projectState1 = statisticsService.GetProjectState(projectId1); //Assert Assert.AreEqual(domain1, projectState1); }