public async Task Given_An_ArchetypeCardMessage_If_Archetype_Is_Found_Should_Invoke_Update_Method_Once()
        {
            // Arrange
            var archetypeCardMessage = new ArchetypeCardMessage
            {
                ArchetypeName = "Blue-Eyes White Dragon",
                Cards         = new List <string> {
                    "Blue-Eyes White Dragon"
                }
            };

            _archetypeService.ArchetypeByName(Arg.Any <string>()).Returns(new Archetype());

            // Act
            await _sut.Process(archetypeCardMessage);

            // Assert
            await _archetypeCardsService.Received(1).Update(Arg.Any <long>(), Arg.Any <IEnumerable <string> >());
        }
Exemplo n.º 2
0
        public async Task <ArchetypeDataTaskResult <ArchetypeCardMessage> > Process(ArchetypeCardMessage archetypeData)
        {
            var articleDataTaskResult = new ArchetypeDataTaskResult <ArchetypeCardMessage>
            {
                ArchetypeData = archetypeData
            };

            var existingArchetype = await _archetypeService.ArchetypeByName(archetypeData.ArchetypeName);

            if (existingArchetype != null && archetypeData.Cards.Any())
            {
                await _archetypeCardsService.Update(existingArchetype.Id, archetypeData.Cards);
            }

            return(articleDataTaskResult);
        }
        public async Task Given_A_CardsByArchetype_Article_Should_Execute_ArchetypeByName()
        {
            // Arrange
            var article = new UnexpandedArticle {
                Title = "Clear Wing", Url = "/wiki/List_of_\"Clear_Wing\"_cards"
            };

            _config.WikiaDomainUrl.Returns("http://yugioh.wikia.com");
            _archetypeService.ArchetypeByName(Arg.Any <string>()).Returns((Archetype)null);
            _archetypeService.Add(Arg.Any <AddArchetypeCommand>()).Returns((Archetype)null);

            // Act
            await _sut.ProcessItem(article);

            // Assert
            await _archetypeService.Received(1).ArchetypeByName(Arg.Any <string>());
        }
Exemplo n.º 4
0
        public async Task <ArticleTaskResult> ProcessItem(UnexpandedArticle item)
        {
            var response = new ArticleTaskResult {
                Article = item
            };
            var archetypeName = StringHelpers.ArchetypeNameFromListTitle(item.Title);

            var archetypeUrl = new Uri(new Uri(_config.WikiaDomainUrl), item.Url);

            var existingArchetype = await _archetypeService.ArchetypeByName(archetypeName);

            if (existingArchetype != null)
            {
                var archetype = await _archetypeCardsService.Update(new UpdateArchetypeCardsCommand { ArchetypeId = existingArchetype.Id, Cards = _archetypeWebPage.Cards(archetypeUrl) });

                if (archetype != null)
                {
                    response.IsSuccessfullyProcessed = true;
                }
            }

            return(response);
        }