示例#1
0
        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"));
        }