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());
        }
示例#2
0
 public DomainStatProjectState StatProjectStateToDomain(StatProjectStateV3Entity entity, bool isSuccessfulUopload)
 {
     return new DomainStatProjectState
     {
         ProjectId = entity.ProjectId,
         DateTime = entity.DateTime,
         Producer = entity.Producer,
         Version = entity.Version,
         IsSuccessfulUpload = isSuccessfulUopload
     };
 }
示例#3
0
        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);
        }