public void TryCreateRouletteEventEntryFailedHasPrizeType() { //arrange var entry = new RouletteEventEntry { Id = 1, Name = "홍길동", Mobile = "01012345678", CreateDate = new DateTime(2017, 10, 25), IpAddress = "127.0.0.1", Channel = Domain.Abstract.ChannelType.Mobile, PrizeType = RouletteEventInstantLotteryPrizeType.Cash1000000 }; entryRepo.Setup(x => x.Any(It.IsAny <Expression <Func <RouletteEventEntry, bool> > >())).Returns(false); entryRepo.Setup(x => x.Add(It.IsAny <RouletteEventEntry>())).Returns(entry); //action var failedResult = Assert.Throws <RouletteServiceException>(() => { var tryTest = service.CreateRouletteEventEntry(entry); }); //assert Assert.Matches("400", failedResult.Code); Assert.Matches("정상적인 경로로 이벤트에 참여해주세요.", failedResult.Message); }
public void TryCreateRouletteEventEntry() { //arrange var entry = new RouletteEventEntry { Id = 1, Name = "홍길동", Mobile = "01012345678", CreateDate = new DateTime(2017, 10, 25), IpAddress = "127.0.0.1", Channel = Domain.Abstract.ChannelType.Mobile }; entryRepo.Setup(x => x.Any(It.IsAny <Expression <Func <RouletteEventEntry, bool> > >())).Returns(false); entryRepo.Setup(x => x.Add(It.IsAny <RouletteEventEntry>())).Returns(entry); //action var tryTest = service.CreateRouletteEventEntry(entry); //assert Assert.NotNull(tryTest); Assert.Matches("홍길동", tryTest.Name); entryRepo.Verify(x => x.Add(It.IsAny <RouletteEventEntry>()), Times.Once); entryRepo.Verify(x => x.Any(It.IsAny <Expression <Func <RouletteEventEntry, bool> > >()), Times.Once); entryRepo.Verify(x => x.Save(), Times.Once); }
public void TryUpdateRouletteEventEntry() { //arrange var prizes = new List <RouletteEventInstantLotteryPrizeSetting>() { new RouletteEventInstantLotteryPrizeSetting { Date = new DateTime(2017, 10, 25), PrizeType = RouletteEventInstantLotteryPrizeType.Cash10000, Rate = 1.0f, TotalCount = 1, WinnerCount = 0, StartTime = 16 }, new RouletteEventInstantLotteryPrizeSetting { Date = new DateTime(2017, 10, 25), PrizeType = RouletteEventInstantLotteryPrizeType.Cash50000, Rate = 1.0f, TotalCount = 1, WinnerCount = 0, StartTime = 16 }, new RouletteEventInstantLotteryPrizeSetting { Date = new DateTime(2017, 10, 25), PrizeType = RouletteEventInstantLotteryPrizeType.Cash500000, Rate = 1.0f, TotalCount = 1, WinnerCount = 0, StartTime = 16 }, new RouletteEventInstantLotteryPrizeSetting { Date = new DateTime(2017, 10, 25), PrizeType = RouletteEventInstantLotteryPrizeType.Cash1000000, Rate = 1.0f, TotalCount = 1, WinnerCount = 0, StartTime = 14 } }; var entry = new RouletteEventEntry { Id = 1, Name = "홍길동", Mobile = "01012345678", CreateDate = new DateTime(2017, 10, 25), IpAddress = "127.0.0.1", Channel = Domain.Abstract.ChannelType.Mobile }; entryRepo.Setup(x => x.SingleOrDefault(It.IsAny <Expression <Func <RouletteEventEntry, bool> > >())).Returns(entry); settingRepo.Setup(x => x.Filter(It.IsAny <Expression <Func <RouletteEventInstantLotteryPrizeSetting, bool> > >())).Returns(prizes.AsQueryable); settingRepo.Setup(x => x.SingleOrDefault(It.IsAny <Expression <Func <RouletteEventInstantLotteryPrizeSetting, bool> > >())).Returns(prizes[3]); var list = new List <RouletteEventEntry>(); entryRepo.Setup(x => x.Filter(It.IsAny <Expression <Func <RouletteEventEntry, bool> > >())).Returns(list.AsQueryable()); entryRepo.Setup(x => x.Update(It.IsAny <RouletteEventEntry>())).Returns(entry); //action var result = service.UpdateRouletteEventEntry(1); //assert Assert.NotNull(result); Assert.Equal(result.PrizeType, RouletteEventInstantLotteryPrizeType.Cash1000000); entryRepo.Verify(x => x.SingleOrDefault(It.IsAny <Expression <Func <RouletteEventEntry, bool> > >()), Times.Once); settingRepo.Verify(x => x.Filter(It.IsAny <Expression <Func <RouletteEventInstantLotteryPrizeSetting, bool> > >()), Times.Once); settingRepo.Verify(x => x.SingleOrDefault(It.IsAny <Expression <Func <RouletteEventInstantLotteryPrizeSetting, bool> > >()), Times.Once); entryRepo.Verify(x => x.Filter(It.IsAny <Expression <Func <RouletteEventEntry, bool> > >()), Times.Once); settingRepo.Verify(x => x.Update(It.IsAny <RouletteEventInstantLotteryPrizeSetting>()), Times.Once); entryRepo.Verify(x => x.Update(It.IsAny <RouletteEventEntry>()), Times.Once); entryRepo.Verify(x => x.Save(), Times.Once); }
/// <summary> /// 개인정보 저장 /// </summary> /// <param name="entry"></param> /// <returns></returns> public RouletteEventEntry CreateRouletteEventEntry(RouletteEventEntry entry) { if (entry.PrizeType.HasValue) { throw new RouletteServiceException("400", "정상적인 경로로 이벤트에 참여해주세요.", null); } var isEntryChance = entryRepo.Any(x => x.Mobile == entry.Mobile && x.PrizeType.HasValue); if (isEntryChance) { throw new RouletteServiceException("400", "해당번호로 중복참여가 불가능합니다.", entry.Mobile); } var result = entryRepo.Add(entry); entryRepo.Save(); return(result); }
public void TryCreateRouletteEventEntryFailedWon() { //arrange var entry = new RouletteEventEntry { Id = 1, Name = "홍길동", Mobile = "01012345678", CreateDate = new DateTime(2017, 10, 25), IpAddress = "127.0.0.1", Channel = Domain.Abstract.ChannelType.Mobile }; entryRepo.Setup(x => x.Any(It.IsAny <Expression <Func <RouletteEventEntry, bool> > >())).Returns(true); entryRepo.Setup(x => x.Add(It.IsAny <RouletteEventEntry>())).Returns(entry); //action var failedResult = Assert.Throws <RouletteServiceException>(() => { var tryTest = service.CreateRouletteEventEntry(entry); }); //assert Assert.Matches("400", failedResult.Code); Assert.Matches("해당번호로 중복참여가 불가능합니다.", failedResult.Message); }