public void Only_attachments_with_valid_json_should_be_extracted() { var validJson = JsonConvert.SerializeObject(new ReceiptCard(title: "valid")); var invalidJson = validJson + "some extra text"; var validAttachment = new Attachment(ValidContentType, content: validJson); var invalidAttachment = new Attachment(ValidContentType, content: invalidJson); var activity = new Activity(attachments: new[] { validAttachment, invalidAttachment }); var sut = new DefaultAttachmentExtractor(); var returnedCards = sut.ExtractCards <ReceiptCard>(activity).ToList(); returnedCards.Count.Should().Be(1); }
public void Attachments_with_content_should_be_deserialized_without_being_retrieved() { var receiptCard = new ReceiptCard("some title"); var receiptCardJson = JsonConvert.SerializeObject(receiptCard); var attachment = new Attachment(ValidContentType, contentUrl: null, content: receiptCardJson); var activity = new Activity(attachments: new[] { attachment }); var sut = new DefaultAttachmentExtractor(); sut.ExtractCards <ReceiptCard>(activity).ToList(); _retriever.DidNotReceive().GetAttachmentFromUrl(Arg.Any <string>()); _retriever.DidNotReceiveWithAnyArgs().GetAttachmentsFromUrls(Arg.Any <string[]>()); }
public void Attachments_with_content_url_should_be_retrieved_by_url() { const string contentUrl = "URL"; var receiptCard = new ReceiptCard("some title"); var receiptCardJson = JsonConvert.SerializeObject(receiptCard); _retriever.GetAttachmentsFromUrls(Arg.Any <string[]>()).Returns(new[] { receiptCardJson }); var attachment = new Attachment(ValidContentType, contentUrl: contentUrl, content: null); var activity = new Activity(attachments: new[] { attachment }); var sut = new DefaultAttachmentExtractor(); sut.ExtractCards <ReceiptCard>(activity).ToList(); _retriever.Received().GetAttachmentsFromUrls(Arg.Is <string[]>(x => x.Contains(contentUrl))); }
public void All_attachments_with_correct_content_type_will_be_extracted_regardless_of_type() { var heroCard = new HeroCard(text: "some text"); var heroJson = JsonConvert.SerializeObject(heroCard); var heroAttachment = new Attachment(ValidContentType, content: heroJson); var someOtherType = new { SomeField = "some text" }; var someOtherTypeJson = JsonConvert.SerializeObject(someOtherType); var someOtherTypeAttachment = new Attachment(ValidContentType, content: someOtherTypeJson); var attachments = new List <Attachment> { heroAttachment, someOtherTypeAttachment }; var activity = new Activity(attachments: attachments); var sut = new DefaultAttachmentExtractor(); var returnedCards = sut.ExtractCards <HeroCard>(activity).ToList(); returnedCards.Count.Should().Be(2); returnedCards.Should().Contain(card => card.Text == null); }
public void All_attachments_with_correct_content_type_will_be_extracted_regardless_of_type() { var receiptCard = new ReceiptCard(title: "some text"); var receiptJson = JsonConvert.SerializeObject(receiptCard); var receiptAttachment = new Attachment(ValidContentType, "validUrl1"); var someOtherType = new { SomeField = "some text" }; var someOtherTypeJson = JsonConvert.SerializeObject(someOtherType); var someOtherTypeAttachment = new Attachment(ValidContentType, "validUrl2"); var attachments = new List <Attachment> { receiptAttachment, someOtherTypeAttachment }; var activity = new Activity(attachments: attachments); _retriever.GetAttachmentsFromUrls(Arg.Any <string[]>()).Returns(new[] { receiptJson, someOtherTypeJson }); var sut = new DefaultAttachmentExtractor(); var returnedCards = sut.ExtractCards <ReceiptCard>(activity).ToList(); returnedCards.Count.Should().Be(2); returnedCards.Should().Contain(card => card.Title == null); }