public GenerateKeysForGameOutput GenerateKeysForGame(GenerateKeysForGameInput input) { Game gameEntity = GameRepository.Get(input.GameId); if (gameEntity == null) { throw new CityQuestItemNotFoundException(CityQuestConsts.CityQuestItemNotFoundExceptionMessageBody, "\"Game\""); } if (!GamePolicy.CanGenerateKeysForEntity(gameEntity) || !(input.Count > 0 && input.Count <= CityQuestConsts.MaxCountForKeyGeneration)) { throw new CityQuestPolicyException(CityQuestConsts.CQPolicyExceptionCreateDenied, "\"Key\""); } IList <string> newKeys = KeyGenerationService.Generate(input.Count); IList <Key> newKeyEntities = new List <Key>(input.Count); foreach (string newKey in newKeys) { newKeyEntities.Add(new Key() { KeyValue = newKey, GameId = input.GameId }); } KeyRepository.AddRange(newKeyEntities); return(new GenerateKeysForGameOutput() { Keys = newKeys }); }
public void CreateKey_OnNonUsedBaseAndUserWithIncorrectNames_ShuoldGiveAKeyTakenFromEmail() { // Arrange var user = new User(null, "Hernandez Saura", "*****@*****.**", null, null, null); var service = new KeyGenerationService(new InMemoryUnitOfWork()); // Act var keyword = service.CreateKey(user); // Assert Assert.IsTrue(Equals(keyword, "ericjavier")); }
public void CreateKey_OnUsedBaseAndUserWithCorrectNames_ShuoldGiveAKeyWithAditionalCount() { // Arrange var entryValue = new FacebookKey("ericjavier.hernandezsaura") { Count = 10 }; var entriesMoq = new Mock <IFacebookKeyRepository>(); entriesMoq.Setup(repo => repo.Find("ericjavierhernandezsaura")).Returns(entryValue); var unitOfWorkMoq = new Mock <IUnitOfWork>(); unitOfWorkMoq.Setup(uow => uow.Entries).Returns(entriesMoq.Object); var user = new User("Eric Javier", "Hernandez Saura", "*****@*****.**", null, null, null); var service = new KeyGenerationService(unitOfWorkMoq.Object); // Act var keyword = service.CreateKey(user); // Assert Assert.IsTrue(Equals(keyword, "ericjavierhernandezsaura11")); }