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 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 async Task AddProjectState(DomainActionData domain, string projectId, string actionType) { DateTime curDateTime = _dateTimeWrapper.CurrentDateTime(); StatProjectStateV3Entity statProjectStateEntity = _statEntityFactory.CreateProjectCreatingEntity(curDateTime, domain, projectId, actionType); ITableRepository <StatProjectStateV3Entity> statProjectStateRepository = _repositoryFactory.Create <StatProjectStateV3Entity>(); try { await statProjectStateRepository.AddAsync(statProjectStateEntity); } catch (ConflictException) { } }
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); }
public DomainStatProjectState GetProjectState(string projectId) { List <StatProjectStateV3Entity> projectStates = _projectStateRepostitory.AsEnumerable(p => p.ProjectId == projectId).ToList(); bool isCic = projectStates.All(p => p.Producer == ProductName.CicIPad || p.Producer == ProductName.CicMac || p.Producer == ProductName.CicPc); bool isSuccessfulUpload = isCic ? projectStates.Select(p => p.ActionType).ContainsAll(new[] { StatActionType.Project, StatActionType.Avsx, StatActionType.Video }) : projectStates.Select(p => p.ActionType).ContainsAll(new[] { StatActionType.Project, StatActionType.Avsx, StatActionType.Video, StatActionType.Screenshot }); StatProjectStateV3Entity entity = projectStates.FirstOrDefault(p => p.ActionType == StatActionType.Project) ?? new StatProjectStateV3Entity { ProjectId = projectId }; DomainStatProjectState domain = _statMapper.StatProjectStateToDomain(entity, isSuccessfulUpload); return(domain); }