public void Get_Award_Success() { var expected = new Award { Id = 1, Success = 3, Fail = 1, Quit = 2, Level = LevelEnum.Hard }; Award expectedNull = null; Mock <IAwardRepository> mockRepository = new Mock <IAwardRepository>(MockBehavior.Strict); mockRepository.Setup(s => s.Get(1)).Returns(expected); mockRepository.Setup(s => s.Get(0)).Returns(expectedNull); IAwardService service = new AwardService(mockRepository.Object); Award actual = service.Get(1); Assert.Equal(expected, actual); Assert.Null(service.Get(0)); mockRepository.Verify(r => r.Get(1), Times.Once()); mockRepository.Verify(r => r.Get(0), Times.Once()); }
public void Update_Award_SuccessValue_Minor_or_Equal_Zero_Error() { Mock <IAwardRepository> mockRepository = new Mock <IAwardRepository>(MockBehavior.Strict); IAwardService service = new AwardService(mockRepository.Object); var award = new Award { Id = 1, Success = -1, Fail = 0, Quit = 0, Level = LevelEnum.Easy }; ArgumentOutOfRangeException ex = Assert.Throws <ArgumentOutOfRangeException>(() => service.Update(award)); Assert.NotNull(ex); Assert.Equal("successValue", ex.ParamName); Assert.Equal(-1M, ex.ActualValue); Assert.Equal($"The value must be greater than zero.\r\nParameter name: {"successValue"}\r\nActual value was {-1M}.", ex.Message); award.Success = 0; ex = Assert.Throws <ArgumentOutOfRangeException>(() => service.Update(award)); Assert.NotNull(ex); Assert.Equal("successValue", ex.ParamName); Assert.Equal(0M, ex.ActualValue); Assert.Equal($"The value must be greater than zero.\r\nParameter name: {"successValue"}\r\nActual value was {0M}.", ex.Message); mockRepository.Verify(r => r.Update(It.IsAny <Award>()), Times.Never()); }
public async Task Get_award_of_employee_should_return_null_for_invalid_input() { var mockAwardStore = new Mock <IAwardsRepository>(); var mockEmployeeStore = new Mock <IEmployeeRepository>(); mockAwardStore.Setup(c => c.GetAwardsByEmployeeId("1144", "xyz", 2)).ReturnsAsync((PagedAwardList)null); mockEmployeeStore.Setup(c => c.GetEmployee(_awards[0].EmployeeId)).ReturnsAsync(_employees[0]); var awardService = new AwardService(mockAwardStore.Object, mockEmployeeStore.Object); var awards = await awardService.GetAwardsOfAnEmployee("1144", "xyz", 2); awards.Should().BeNull(); }
public async Task GetMonthly_awards_should_return_null_for_invalid_data() { var mockAwardStore = new Mock <IAwardsRepository>(); var mockEmployeeStore = new Mock <IEmployeeRepository>(); mockAwardStore.Setup(c => c.GetMonthlyAwards("kudos", 1, 2019)).ReturnsAsync(_awards); mockEmployeeStore.Setup(c => c.GetEmployee(_awards[0].EmployeeId)).ReturnsAsync(_employees[0]); var awardService = new AwardService(mockAwardStore.Object, mockEmployeeStore.Object); var awards = await awardService.GetMonthlyAwards("kudos", 1, 220231); awards.Should().BeNull(); }
public void Add_Award_SuccessValue_Minor_than_QuitValue_Error() { Mock <IAwardRepository> mockRepository = new Mock <IAwardRepository>(MockBehavior.Strict); IAwardService service = new AwardService(mockRepository.Object); ArgumentException ex = Assert.Throws <ArgumentException>(() => service.Add(2, 1, 3, LevelEnum.Easy)); Assert.NotNull(ex); Assert.Equal("successValue can't be minor than quitValue.", ex.Message); mockRepository.Verify(r => r.Add(3, 1, 2, LevelEnum.Easy), Times.Never()); }
public void Add_Award_QuitValue_Minor_than_Zero_Error() { Mock <IAwardRepository> mockRepository = new Mock <IAwardRepository>(MockBehavior.Strict); IAwardService service = new AwardService(mockRepository.Object); ArgumentOutOfRangeException ex = Assert.Throws <ArgumentOutOfRangeException>(() => service.Add(1, 1, -1, LevelEnum.Easy)); Assert.NotNull(ex); Assert.Equal("quitValue", ex.ParamName); Assert.Equal(-1M, ex.ActualValue); Assert.Equal($"The value must be greater than or equal to zero.\r\nParameter name: {"quitValue"}\r\nActual value was {-1M}.", ex.Message); mockRepository.Verify(r => r.Add(3, 1, 2, LevelEnum.Easy), Times.Never()); }
public async void GetAnnualAwards_should_return_Annual_Awards() { var mockAwardStore = new Mock <IAwardsRepository>(); var mockEmployeeStore = new Mock <IEmployeeRepository>(); mockAwardStore.Setup(c => c.GetAnnualAwards(2019)).ReturnsAsync(_awards); mockEmployeeStore.Setup(c => c.GetEmployee(_awards[0].EmployeeId)).ReturnsAsync(_employees[0]); var awardService = new AwardService(mockAwardStore.Object, mockEmployeeStore.Object); var awards = await awardService.GetAnnualAwards(2019); awards.Should().NotBeNull(); Assert.Equal(_awards[0].Id, awards[0].Awards.Id); Assert.Equal(_awards[0].EmployeeId, awards[0].Employee.Id); }
public async Task Get_award_of_employee_should_return_award_list_for_particular_employee() { var pagedAwardList = new PagedAwardList { PageState = "xzz", Awards = _awards }; var mockAwardStore = new Mock <IAwardsRepository>(); var mockEmployeeStore = new Mock <IEmployeeRepository>(); mockAwardStore.Setup(c => c.GetAwardsByEmployeeId("1121", "xyz", 2)).ReturnsAsync(pagedAwardList); mockEmployeeStore.Setup(c => c.GetEmployee(_awards[0].EmployeeId)).ReturnsAsync(_employees[0]); var awardService = new AwardService(mockAwardStore.Object, mockEmployeeStore.Object); var awards = await awardService.GetAwardsOfAnEmployee("1121", "xyz", 2); awards.Should().NotBeNull(); }
public void Add_Award_Equal_Values_Error() { Mock <IAwardRepository> mockRepository = new Mock <IAwardRepository>(MockBehavior.Strict); IAwardService service = new AwardService(mockRepository.Object); ArgumentException ex = Assert.Throws <ArgumentException>(() => service.Add(1, 1, 2, LevelEnum.Easy)); Assert.NotNull(ex); Assert.Equal("Award values can't be equal.", ex.Message); ex = Assert.Throws <ArgumentException>(() => service.Add(1, 2, 1, LevelEnum.Easy)); Assert.NotNull(ex); Assert.Equal("Award values can't be equal.", ex.Message); ex = Assert.Throws <ArgumentException>(() => service.Add(2, 1, 1, LevelEnum.Easy)); Assert.NotNull(ex); Assert.Equal("Award values can't be equal.", ex.Message); mockRepository.Verify(r => r.Add(3, 1, 2, LevelEnum.Easy), Times.Never()); }
public void Add_Award_Success() { var expected = new Award { Id = 1, Success = 3, Fail = 1, Quit = 2, Level = LevelEnum.Easy }; Mock <IAwardRepository> mockRepository = new Mock <IAwardRepository>(MockBehavior.Strict); mockRepository.Setup(s => s.Add(3, 1, 2, LevelEnum.Easy)).Returns(expected); IAwardService service = new AwardService(mockRepository.Object); Award actual = service.Add(3, 1, 2, LevelEnum.Easy); mockRepository.Verify(r => r.Add(3, 1, 2, LevelEnum.Easy), Times.Once()); Assert.Equal(expected, actual); }
public void Update_Award_Success() { var award = new Award { Id = 1, Success = 3, Fail = 1, Quit = 2, Level = LevelEnum.Easy }; Mock <IAwardRepository> mockRepository = new Mock <IAwardRepository>(MockBehavior.Strict); mockRepository.Setup(s => s.Update(award)); IAwardService service = new AwardService(mockRepository.Object); service.Update(award); mockRepository.Verify(r => r.Update(It.IsAny <Award>()), Times.Once()); }
public void Update_Award_QuitValue_Minor_than_FailValue_Error() { Mock <IAwardRepository> mockRepository = new Mock <IAwardRepository>(MockBehavior.Strict); IAwardService service = new AwardService(mockRepository.Object); var award = new Award { Id = 1, Success = 3, Fail = 2, Quit = 1, Level = LevelEnum.Easy }; ArgumentException ex = Assert.Throws <ArgumentException>(() => service.Update(award)); Assert.NotNull(ex); Assert.Equal("quitValue can't be minor than failValue.", ex.Message); mockRepository.Verify(r => r.Update(It.IsAny <Award>()), Times.Never()); }
public void GetAll_Award_Success() { var expected = new List <Award> { new Award { Id = 1, Success = 3, Fail = 1, Quit = 2, Level = LevelEnum.Hard }, new Award { Id = 2, Success = 4, Fail = 2, Quit = 3, Level = LevelEnum.Medium } }; Mock <IAwardRepository> mockRepository = new Mock <IAwardRepository>(MockBehavior.Strict); mockRepository.Setup(s => s.GetAll()).Returns(expected); IAwardService service = new AwardService(mockRepository.Object); List <Award> actual = service.GetAll(); Assert.Equal(expected, actual); mockRepository.Verify(r => r.GetAll(), Times.Once()); }
public void Update_Award_Equal_Values_Error() { Mock <IAwardRepository> mockRepository = new Mock <IAwardRepository>(MockBehavior.Strict); IAwardService service = new AwardService(mockRepository.Object); var award = new Award { Id = 1, Success = 1, Fail = 1, Quit = 2, Level = LevelEnum.Easy }; ArgumentException ex = Assert.Throws <ArgumentException>(() => service.Update(award)); Assert.NotNull(ex); Assert.Equal("Award values can't be equal.", ex.Message); award.Success = 1; award.Fail = 2; award.Quit = 1; ex = Assert.Throws <ArgumentException>(() => service.Update(award)); Assert.NotNull(ex); Assert.Equal("Award values can't be equal.", ex.Message); award.Success = 2; award.Fail = 1; award.Quit = 1; ex = Assert.Throws <ArgumentException>(() => service.Update(award)); Assert.NotNull(ex); Assert.Equal("Award values can't be equal.", ex.Message); mockRepository.Verify(r => r.Add(3, 1, 2, LevelEnum.Easy), Times.Never()); }
public void Delete_Award_Success() { Award notFoundAward = null; Mock <IAwardRepository> mockRepository = new Mock <IAwardRepository>(MockBehavior.Strict); mockRepository.Setup(r => r.Delete(0)).Throws(new InvalidOperationException("There's no Award with ID value equal to 0")); mockRepository.Setup(r => r.Delete(1)); mockRepository.Setup(r => r.Get(0)).Returns(notFoundAward); mockRepository.Setup(r => r.Get(1)).Returns(new Award()); IAwardService service = new AwardService(mockRepository.Object); service.Delete(1); InvalidOperationException ex = Assert.Throws <InvalidOperationException>(() => service.Delete(0)); Assert.NotNull(ex); Assert.Equal(ex.Message, "There's no Award with ID value equal to 0"); mockRepository.Verify(r => r.Delete(1), Times.Once()); mockRepository.Verify(r => r.Get(It.IsAny <int>()), Times.AtLeast(2)); mockRepository.Verify(r => r.Delete(0), Times.Never()); mockRepository.Verify(r => r.Delete(1), Times.Once()); }
public CreateAward(AwardService awardService, EmployeeService employeeService) { AwardService = awardService; EmployeeService = employeeService; }
public override void read(ErlKVMessage message) { ErlList ls; ErlType type = message.getValue("type") as ErlType; // ErlList ls = message.getValue("report") as ErlList; ErlType Rportnum = message.getValue("report") as ErlType; ErlType emeyType = message.getValue("enemy_array") as ErlType; ErlType mineType = message.getValue("mine_array") as ErlType; ErlType pvpType = message.getValue("bonus_attack") as ErlType; ErlType emeyResonance = message.getValue("enemy_resonance") as ErlType; ErlType attResonance = message.getValue("attacker_resonance") as ErlType; ErlType replayAttackerName = message.getValue("attacker_name") as ErlType; ErlType replayEnemyName = message.getValue("enemy_name") as ErlType; ErlType cardEvo = message.getValue("card_evo") as ErlType; //卡片进化等级 ErlType emeyNum = message.getValue("fore") as ErlType; //pve敌人阵形人数 GameManager.Instance.isCanBeSecondSkill = false; if (Rportnum is ErlList) { ls = Rportnum as ErlList; } else { int reportNum = StringKit.toInt(Rportnum.getValueString()); //ls=message.getValue("1") as ErlList; List <ErlType> ttt = new List <ErlType>(); for (int i = 0; i < reportNum; i++) { string kk = (i + 1).ToString(); ErlList te = message.getValue(kk) as ErlList; for (int j = 0; j < te.Value.Length; j++) { ttt.Add(te.Value[j]); } } ErlType[] kks = new ErlType[ttt.Count]; for (int i = 0; i < ttt.Count; i++) { kks[i] = ttt[i]; } ls = new ErlList(kks); } if (message.getValue("seckill") != null) { if (MissionInfoManager.Instance.isBossFight) { MissionInfoManager.Instance.isBossFight = false; } else { GameManager.Instance.isCanBeSecondSkill = (message.getValue("seckill") as ErlType).getValueString() == "1"; } } ErlType damageValue = message.getValue("damage") as ErlType; //单挑boss伤害值// if (damageValue != null) { AttackBossOneOnOneManager.Instance.damageValue = StringKit.toLong(damageValue.getValueString()); } BattleDataErlang battleData = new BattleDataErlang(); if (emeyNum != null) { battleData.pveTeamNum = StringKit.toInt(emeyNum.getValueString()); } if (emeyType != null) { battleData.enemyFormationID = StringKit.toInt(emeyType.getValueString()); } if (mineType != null) { battleData.playerFormationID = StringKit.toInt(mineType.getValueString()); } if (pvpType != null) { battleData.pvpType = StringKit.toInt(pvpType.getValueString()); } if (emeyResonance != null) { ErlArray eaER = emeyResonance as ErlArray; //上方召唤兽共鸣 battleData.enemyBeastEffect = BeastEvolveManagerment.Instance.getBestResonanceByNums(StringKit.toInt(eaER.Value [1].getValueString()), StringKit.toInt(eaER.Value [0].getValueString())); } if (attResonance != null) { ErlArray eaER = attResonance as ErlArray; //下方召唤兽共鸣 battleData.playerBeastEffect = BeastEvolveManagerment.Instance.getBestResonanceByNums(StringKit.toInt(eaER.Value [1].getValueString()), StringKit.toInt(eaER.Value [0].getValueString())); } else { battleData.playerBeastEffect = BeastEvolveManagerment.Instance.getBestResonance(); } if (replayAttackerName != null) { battleData.replayAttackerName = replayAttackerName.getValueString(); } if (replayEnemyName != null) { battleData.replayEnemyName = replayEnemyName.getValueString(); } if (cardEvo != null) //卡片进化等级 { battleData.evo = new Dictionary <string, int> (); ErlArray eaCEs = cardEvo as ErlArray; for (int i = eaCEs.Value.Length - 1; i >= 0; i--) { ErlArray eaCE = eaCEs.Value [i] as ErlArray; battleData.evo.Add(eaCE.Value [0].getValueString(), StringKit.toInt(eaCE.Value [1].getValueString())); } } battleData.hpMap = new Dictionary <int, BattleHpInfo> (); parseBattleType(battleData, type); BattleManager.battleData = battleData; //倒转顺序 战报需要倒转 每个erllist都需要倒转 Array.Reverse(ls.Value); //获取队伍信息 createTeamInfo(battleData, ls.Value [0] as ErlList); //获取开场buff createOpenBuff(battleData, ls.Value [1]); //解析回合战斗 ErlList el; int frame = 0; for (int i = 2; i < ls.Value.Length - 1; i += 3) { frame = (i - 2) / 3 + 1; //(i-2)/3+1 回合的算法 //如果执行到最后一个 则不进行序列化 最后一个是战斗胜利 if (i == ls.Value.Length - 1) { break; } //剧情npc if (!(ls.Value [i] is ErlNullList)) { el = ls.Value [i] as ErlList; //erllist 需要倒转顺序 Array.Reverse(el.Value); createFight(battleData, el, frame); } if (i + 1 >= ls.Value.Length - 1) { break; } //回合buffer检查 if (!(ls.Value [i + 1] is ErlNullList)) { el = ls.Value [i + 1] as ErlList; //erllist 需要倒转顺序 Array.Reverse(el.Value); createRoundBuffer(battleData, el, frame); } if (i + 2 >= ls.Value.Length - 1) { break; } //有可能当前回合,双方都没有出手 if (ls.Value [i + 2] is ErlNullList) { createFight(battleData, ls.Value [i + 2] as ErlNullList, frame); } else { //回合战斗 el = ls.Value [i + 2] as ErlList; //erllist 需要倒转顺序 Array.Reverse(el.Value); createFight(battleData, el, frame); } } setLastAttack(battleData); //设置最后一击,攻击伤害行为完成后调用 //获取胜利失败 createWinner(battleData, ls.Value [ls.Value.Length - 1] as ErlList, frame + 1); ErlType award = message.getValue("award") as ErlType;//获取奖励 //这里处理副本战斗 if (MissionInfoManager.Instance.mission != null && MissionInfoManager.Instance.mission.getChapterType() == ChapterType.STORY && GameManager.Instance.isCanBeSecondSkill && PlayerPrefs.GetInt(UserManager.Instance.self.uid + "miaosha", 1) == 1 && battleData.isPve && UserManager.Instance.self.getUserLevel() >= 15) { AwardService service12 = ServiceManager.Instance.getServiceByCmd(FPortService.AWARD) as AwardService; if (award is ErlArray) { service12.parseMAward(award as ErlArray); } else if (award is ErlList) { service12.parseMAward(award as ErlList); } GameManager.Instance.battleReportCallback(); GameManager.Instance.battleReportCallback = null; } else if (GameManager.Instance.isCanBeSecondSkill && PlayerPrefs.GetInt(UserManager.Instance.self.uid + "miaosha", 1) == 1 && battleData.isPvP && UserManager.Instance.self.getUserLevel() >= 15)//这里处理副本PK { AwardService service12 = ServiceManager.Instance.getServiceByCmd(FPortService.AWARD) as AwardService; if (award is ErlArray) { service12.parseMAward(award as ErlArray); } else if (award is ErlList) { service12.parseMAward(award as ErlList); } GameManager.Instance.battleReportCallback(); GameManager.Instance.battleReportCallback = null; } else { GameManager.Instance.battleReportCallback(); GameManager.Instance.battleReportCallback = null; AwardService service1 = ServiceManager.Instance.getServiceByCmd(FPortService.AWARD) as AwardService; if (award is ErlArray) { service1.parseAward(award as ErlArray); } else if (award is ErlList) { service1.parseAward(award as ErlList); } } // (ServiceManager.Instance.getServiceByCmd (FPortService.AWARD) as AwardService).parseAward ((award as ErlArray) != null ? award as ErlArray : award as ErlList); //战斗失败处理 if (message.getValue("event") != null) { (ServiceManager.Instance.getServiceByCmd(FPortService.FUBEN_EVENT) as FuBenDoEventService).parseFightLose(message.getValue("action") as ErlType, message.getValue("pstep") as ErlType); } }