public void DetermineQuartileShouldDetermineCorrectQuartileByValue() { Quartile bronzeQuartile = new Quartile { Name = "bronze", Min = 0, Max = 24 }; Quartile silverQuartile = new Quartile { Name = "silver", Min = 25, Max = 49 }; Quartile goldQuartile = new Quartile { Name = "gold", Min = 50, Max = 74 }; Quartile platinumQuartile = new Quartile { Name = "platinum", Min = 75, Max = 100 }; _salesLeadCalcuationUtils.DetermineQuartile(0).ShouldBeEquivalentTo(bronzeQuartile); _salesLeadCalcuationUtils.DetermineQuartile(24).ShouldBeEquivalentTo(bronzeQuartile); _salesLeadCalcuationUtils.DetermineQuartile(25).ShouldBeEquivalentTo(silverQuartile); _salesLeadCalcuationUtils.DetermineQuartile(49).ShouldBeEquivalentTo(silverQuartile); _salesLeadCalcuationUtils.DetermineQuartile(50).ShouldBeEquivalentTo(goldQuartile); _salesLeadCalcuationUtils.DetermineQuartile(74).ShouldBeEquivalentTo(goldQuartile); _salesLeadCalcuationUtils.DetermineQuartile(75).ShouldBeEquivalentTo(platinumQuartile); _salesLeadCalcuationUtils.DetermineQuartile(100).ShouldBeEquivalentTo(platinumQuartile); }
public void ConvertToType() { const string testFilePath = "C:\testFile.csv"; var readRowResults = new Results<bool>(true) .Then(true) .Then(true) .Then(false); var columnResults = new Results<List<string>>(new List<string> { "1", "Email", "150.2" }) .Then(new List<string> { "2", "Email", "150.2" }) .Then(new List<string> { "3", "Email", "150.2" }); EventType et1; _eventTypeConverter.TryParseString("Email", out et1).Returns(x => { x[1] = EventType.Email; return true; }); _csvParser.ReadRow(null).ReturnsForAnyArgs(x => { var hasNext = readRowResults.Next(); if (!hasNext) return false; ((Row)x[0]).Columns = columnResults.Next(); return true; }); _salesLeadCalculationUtils.CalculateWeightedValue(EventType.Email, 0.0).ReturnsForAnyArgs(100); _csvReaderFactory.CreateCsvParser(testFilePath).ReturnsForAnyArgs(_csvParser); _salesLeadCalculationUtils.CalculateNormalizedValue(0, 0, 0).ReturnsForAnyArgs(100); Quartile testQuartile = new Quartile { Max = 100, Min = 75, Name = "Platinum" }; _salesLeadCalculationUtils.DetermineQuartile(0).ReturnsForAnyArgs(testQuartile); List<SalesLead> expectedResult = new List<SalesLead> { new SalesLead { ContactId = 1, EventScores = new List<EventScore> { new EventScore { Score = 150.2, Type = EventType.Email, WeightedScore = 100 } }, EventScoreSum = 100, EventScoreNormalized = 100, ContactQuartile = testQuartile }, new SalesLead { ContactId = 2, EventScores = new List<EventScore> { new EventScore { Score = 150.2, Type = EventType.Email, WeightedScore = 100 } }, EventScoreSum = 100, EventScoreNormalized = 100, ContactQuartile = testQuartile }, new SalesLead { ContactId = 3, EventScores = new List<EventScore> { new EventScore { Score = 150.2, Type = EventType.Email, WeightedScore = 100 } }, EventScoreSum = 100, EventScoreNormalized = 100, ContactQuartile = testQuartile } }; var result = _salesLeadTypeConverter.ConvertToType(testFilePath); result.Count.ShouldBeEquivalentTo(3); result.ShouldBeEquivalentTo(expectedResult); }