public void CallTest() { //Arrange var domainStatProjectState1 = new DomainStatProjectState() { Producer = ProductName.TaggerAndroid, IsSuccessfulUpload = true }; var domainStatProjectState2 = new DomainStatProjectState() { Producer = ProductName.TaggerAndroid, IsSuccessfulUpload = false }; var domainStatProjectState3 = new DomainStatProjectState() { Producer = "ProductName", IsSuccessfulUpload = true }; var domainReport = new DomainReport(); var statProjectUploadingFilter = new Mock <IStatProjectUploadingFilter>(); var taggerAndroidUploadsFilter = new TaggerAndroidUploadsFilter(); taggerAndroidUploadsFilter.Set(statProjectUploadingFilter.Object); //Act taggerAndroidUploadsFilter.Call(domainStatProjectState1, domainReport); taggerAndroidUploadsFilter.Call(domainStatProjectState2, domainReport); taggerAndroidUploadsFilter.Call(domainStatProjectState3, domainReport); //Assert Assert.AreEqual(1, domainReport.TaggerAndroidSuccessfulUploads); statProjectUploadingFilter.Verify(m => m.Call(domainStatProjectState1, domainReport), Times.Once()); statProjectUploadingFilter.Verify(m => m.Call(domainStatProjectState2, domainReport), Times.Once()); statProjectUploadingFilter.Verify(m => m.Call(domainStatProjectState3, domainReport), Times.Once()); }
public DomainReport CompileReport(DomainReport additionalReport = null) { var domainReport = new DomainReport { Interval = _interval.Days.ToString(CultureInfo.InvariantCulture) }; IEnumerable <DomainStatWatching> watchings = _statisticsService.GetWatchings(_interval); IEnumerable <DomainStatUserRegistration> registrations = _statisticsService.GetUserRegistrations(_interval); IEnumerable <DomainStatProjectUploading> uploadings = _statisticsService.GetProjectUploadings(_interval); IEnumerable <DomainStatProjectDeletion> deletions = _statisticsService.GetProjectDeletions(_interval); foreach (DomainStatWatching domainStatWatching in watchings) { _filtersManager.FilterStatWatching(domainStatWatching, domainReport); } foreach (DomainStatUserRegistration domainStatUserRegistration in registrations) { _filtersManager.FilterStatUserRegistration(domainStatUserRegistration, domainReport); } foreach (DomainStatProjectUploading domainStatProjectUploading in uploadings) { DomainStatProjectState domainStatProjectState = _statisticsService.GetProjectState(domainStatProjectUploading.ProjectId); _filtersManager.FilterStatProjectUploading(domainStatProjectState, domainReport); } foreach (DomainStatProjectDeletion domainStatProjectDeletion in deletions) { DomainStatProjectState domainStatProjectState = _statisticsService.GetProjectState(domainStatProjectDeletion.ProjectId); _filtersManager.FilterStatProjectDeletion(domainStatProjectState, domainReport); _filtersManager.FilterStatProjectCancellation(domainStatProjectState, domainReport); } return(domainReport); }
public void CallTest() { //Arrange var domainStatProjectState1 = new DomainStatProjectState() { Producer = ProductName.CicIPad, IsSuccessfulUpload = true }; var domainStatProjectState2 = new DomainStatProjectState() { Producer = ProductName.CicIPad, IsSuccessfulUpload = false }; var domainStatProjectState3 = new DomainStatProjectState() { Producer = "ProductName", IsSuccessfulUpload = true }; var domainReport = new DomainReport(); var statProjectDeletionFilter = new Mock <IStatProjectDeletionFilter>(); var cicIPadDeletionsFilter = new CicIPadDeletionsFilter(); cicIPadDeletionsFilter.Set(statProjectDeletionFilter.Object); //Act cicIPadDeletionsFilter.Call(domainStatProjectState1, domainReport); cicIPadDeletionsFilter.Call(domainStatProjectState2, domainReport); cicIPadDeletionsFilter.Call(domainStatProjectState3, domainReport); //Assert Assert.AreEqual(1, domainReport.CicIPadDeletions); statProjectDeletionFilter.Verify(m => m.Call(domainStatProjectState1, domainReport), Times.Once()); statProjectDeletionFilter.Verify(m => m.Call(domainStatProjectState2, domainReport), Times.Once()); statProjectDeletionFilter.Verify(m => m.Call(domainStatProjectState3, domainReport), Times.Once()); }
public void Call(DomainStatProjectState domainStatProjectState, DomainReport domainReport) { if (domainStatProjectState.IsSuccessfulUpload && domainStatProjectState.Producer == ProductName.CicPc) { domainReport.CicPcDeletions++; } if (Filter != null) { Filter.Call(domainStatProjectState, domainReport); } }
public void Call(DomainStatProjectState domainStatProjectState, DomainReport domainReport) { if (!domainStatProjectState.IsSuccessfulUpload && domainStatProjectState.Producer == ProductName.TaggerIPhone) { domainReport.TaggerIPhoneUploadCancels++; } if (Filter != null) { Filter.Call(domainStatProjectState, domainReport); } }
public void Call(DomainStatProjectState domainStatProjectState, DomainReport domainReport) { if (domainStatProjectState.IsSuccessfulUpload && domainStatProjectState.Producer == ProductName.Standalone) { domainReport.StandaloneSuccessfulUploads++; } if (Filter != null) { Filter.Call(domainStatProjectState, domainReport); } }
public void CallWhenNotSetFelterTest() { //Arrange var domainStatUserRegistration = new DomainStatProjectState() { Producer = ProductName.DailyMotion, IsSuccessfulUpload = true }; var domainReport = new DomainReport(); var dailyMotionUploadsFilter = new DailyMotionUploadsFilter(); //Act dailyMotionUploadsFilter.Call(domainStatUserRegistration, domainReport); dailyMotionUploadsFilter.Call(domainStatUserRegistration, domainReport); //Assert Assert.AreEqual(2, domainReport.DailyMotionSuccessfulUploads); }
public void CallWhenNotSetFelterTest() { //Arrange var domainStatProjectState = new DomainStatProjectState() { Producer = ProductName.TaggerIPhone, IsSuccessfulUpload = true }; var domainReport = new DomainReport(); var taggerIPhoneUploadsFilter = new TaggerIPhoneUploadsFilter(); //Act taggerIPhoneUploadsFilter.Call(domainStatProjectState, domainReport); taggerIPhoneUploadsFilter.Call(domainStatProjectState, domainReport); //Assert Assert.AreEqual(2, domainReport.TaggerIPhoneUploads); }
public void CallWhenNotSetFelterTest() { //Arrange var domainStatProjectState = new DomainStatProjectState() { Producer = ProductName.Player, IsSuccessfulUpload = true }; var domainReport = new DomainReport(); var playerUploadsFilter = new PlayerUploadsFilter(); //Act playerUploadsFilter.Call(domainStatProjectState, domainReport); playerUploadsFilter.Call(domainStatProjectState, domainReport); //Assert Assert.AreEqual(2, domainReport.PlayerSuccessfulUploads); }
public void CallWhenNotSetFelterTest() { //Arrange var domainStatProjectState = new DomainStatProjectState() { Producer = ProductName.CicMac, IsSuccessfulUpload = false }; var domainReport = new DomainReport(); var cicMacCancellationFilter = new CicMacCancellationFilter(); //Act cicMacCancellationFilter.Call(domainStatProjectState, domainReport); cicMacCancellationFilter.Call(domainStatProjectState, domainReport); //Assert Assert.AreEqual(2, domainReport.CicMacUploadCancels); }
public void CallWhenNotSetFelterTest() { //Arrange var domainStatProjectState = new DomainStatProjectState() { Producer = ProductName.ImageShack, IsSuccessfulUpload = false }; var domainReport = new DomainReport(); var imageShackCancellationFilter = new ImageShackCancellationFilter(); //Act imageShackCancellationFilter.Call(domainStatProjectState, domainReport); imageShackCancellationFilter.Call(domainStatProjectState, domainReport); //Assert Assert.AreEqual(2, domainReport.ImageShackUploadCancels); }
public void CallWhenNotSetFelterTest() { //Arrange var domainStatProjectState = new DomainStatProjectState() { Producer = ProductName.CicIPad, IsSuccessfulUpload = true }; var domainReport = new DomainReport(); var cicIPadDeletionsFilter = new CicIPadDeletionsFilter(); //Act cicIPadDeletionsFilter.Call(domainStatProjectState, domainReport); cicIPadDeletionsFilter.Call(domainStatProjectState, domainReport); //Assert Assert.AreEqual(2, domainReport.CicIPadDeletions); }
public void CallWhenNotSetFelterTest() { //Arrange var domainStatProjectState = new DomainStatProjectState() { Producer = ProductName.Standalone, IsSuccessfulUpload = false }; var domainReport = new DomainReport(); var standaloneCancellationFilter = new StandaloneCancellationFilter(); //Act standaloneCancellationFilter.Call(domainStatProjectState, domainReport); standaloneCancellationFilter.Call(domainStatProjectState, domainReport); //Assert Assert.AreEqual(2, domainReport.StandaloneUploadCancels); }
public void CallWhenNotSetFelterTest() { //Arrange var domainStatProjectState = new DomainStatProjectState() { Producer = ProductName.TaggerAndroid, IsSuccessfulUpload = false }; var domainReport = new DomainReport(); var taggerAndroidCancellationFilter = new TaggerAndroidCancellationFilter(); //Act taggerAndroidCancellationFilter.Call(domainStatProjectState, domainReport); taggerAndroidCancellationFilter.Call(domainStatProjectState, domainReport); //Assert Assert.AreEqual(2, domainReport.TaggerAndroidUploadCancels); }
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 void FilterStatProjectDeletionTest() { //Arrange var domainStatProjectState = new DomainStatProjectState(); var statProjectDeletionFilters = new List <IStatProjectDeletionFilter>(); var filter = new Mock <IStatProjectDeletionFilter>(); _filtersFactory.Setup(m => m.CreateStatProjectDeletionFilters()).Returns(statProjectDeletionFilters); _filtersChainBuilder.Setup(m => m.BuildStatProjectDeletionFilter(statProjectDeletionFilters)).Returns(filter.Object); var filtersManager = new FiltersManager(_filtersFactory.Object, _filtersChainBuilder.Object); //Act filtersManager.FilterStatProjectDeletion(domainStatProjectState, _domainReport); //Assert filter.Verify(m => m.Call(domainStatProjectState, _domainReport), Times.Once()); }
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); }
public void CallTest() { //Arrange var domainStatProjectState1 = new DomainStatProjectState() { Producer = ProductName.ImageShack, IsSuccessfulUpload = true }; var domainStatProjectState2 = new DomainStatProjectState() { Producer = ProductName.ImageShack, IsSuccessfulUpload = false }; var domainStatProjectState3 = new DomainStatProjectState() { Producer = ProductName.ImageShack, IsSuccessfulUpload = false }; var domainStatProjectState4 = new DomainStatProjectState() { Producer = "ProductName", IsSuccessfulUpload = true }; var domainReport = new DomainReport(); var statProjectDeletionFilter = new Mock <IStatProjectCancellationFilter>(); var imageShackCancellationFilter = new ImageShackCancellationFilter(); imageShackCancellationFilter.Set(statProjectDeletionFilter.Object); //Act imageShackCancellationFilter.Call(domainStatProjectState1, domainReport); imageShackCancellationFilter.Call(domainStatProjectState2, domainReport); imageShackCancellationFilter.Call(domainStatProjectState3, domainReport); imageShackCancellationFilter.Call(domainStatProjectState4, domainReport); //Assert Assert.AreEqual(2, domainReport.ImageShackUploadCancels); statProjectDeletionFilter.Verify(m => m.Call(domainStatProjectState1, domainReport), Times.Once()); statProjectDeletionFilter.Verify(m => m.Call(domainStatProjectState2, domainReport), Times.Once()); statProjectDeletionFilter.Verify(m => m.Call(domainStatProjectState3, domainReport), Times.Once()); statProjectDeletionFilter.Verify(m => m.Call(domainStatProjectState4, domainReport), Times.Once()); }
public void FilterStatProjectUploading(DomainStatProjectState domainStatProjectState, DomainReport domainReport) { _statProjectUploadingFilter.Call(domainStatProjectState, domainReport); }
public void FilterStatProjectCancellation(DomainStatProjectState domainStatProjectState, DomainReport domainReport) { _statProjectCancellationFilter.Call(domainStatProjectState, domainReport); }
public void CompileReportTest() { //Arrange const string projectId1 = "projectId1"; const string projectId2 = "projectId2"; const int days = 3; var startDate = new DateTime(3452345234); var finishDate = startDate.Add(TimeSpan.FromDays(days)); var interval = new Interval() { Start = startDate, Finish = finishDate }; var watching1 = new DomainStatWatching(); var watching2 = new DomainStatWatching(); var registration1 = new DomainStatUserRegistration(); var registration2 = new DomainStatUserRegistration(); var uploading1 = new DomainStatProjectUploading() { ProjectId = projectId1 }; var uploading2 = new DomainStatProjectUploading() { ProjectId = projectId2 }; var deletion1 = new DomainStatProjectDeletion() { ProjectId = projectId1 }; var deletion2 = new DomainStatProjectDeletion() { ProjectId = projectId2 }; var projectState1 = new DomainStatProjectState(); var projectState2 = new DomainStatProjectState(); var watchings = new List <DomainStatWatching>() { watching1, watching2 }; var registratios = new List <DomainStatUserRegistration>() { registration1, registration2 }; var uploadings = new List <DomainStatProjectUploading>() { uploading1, uploading2 }; var deletions = new List <DomainStatProjectDeletion>() { deletion1, deletion2 }; var filtersManager = new Mock <IFiltersManager>(); var statisticsService = new Mock <IStatisticsService>(); var compiler = new StatisticsCompiler(filtersManager.Object, statisticsService.Object, interval); statisticsService.Setup(m => m.GetWatchings(interval)).Returns(watchings); statisticsService.Setup(m => m.GetUserRegistrations(interval)).Returns(registratios); statisticsService.Setup(m => m.GetProjectUploadings(interval)).Returns(uploadings); statisticsService.Setup(m => m.GetProjectDeletions(interval)).Returns(deletions); statisticsService.Setup(m => m.GetProjectState(projectId1)).Returns(projectState1); statisticsService.Setup(m => m.GetProjectState(projectId2)).Returns(projectState2); //Act var report = compiler.CompileReport(); //Assert Assert.AreEqual(days.ToString(CultureInfo.InvariantCulture), report.Interval); filtersManager.Verify(m => m.FilterStatWatching(watching1, report), Times.Once()); filtersManager.Verify(m => m.FilterStatWatching(watching2, report), Times.Once()); filtersManager.Verify(m => m.FilterStatUserRegistration(registration1, report), Times.Once()); filtersManager.Verify(m => m.FilterStatUserRegistration(registration2, report), Times.Once()); filtersManager.Verify(m => m.FilterStatProjectUploading(projectState1, report), Times.Once()); filtersManager.Verify(m => m.FilterStatProjectUploading(projectState2, report), Times.Once()); filtersManager.Verify(m => m.FilterStatProjectDeletion(projectState1, report), Times.Once()); filtersManager.Verify(m => m.FilterStatProjectDeletion(projectState2, report), Times.Once()); filtersManager.Verify(m => m.FilterStatProjectCancellation(projectState1, report), Times.Once()); filtersManager.Verify(m => m.FilterStatProjectCancellation(projectState2, report), Times.Once()); }