public void MessageActivityWithSignInCard() { var skillRequest = SkillRequestHelper.CreateIntentRequest(); var mapper = new AlexaRequestMapper(); var signinCard = new SigninCard { Text = "sign in text", Buttons = new List <CardAction>() { new CardAction { Title = "sign in", Type = ActionTypes.OpenUrl, Image = "https://image", Value = "https://value" } } }; var activity = Activity.CreateMessageActivity() as Activity; activity.Attachments.Add(new Attachment() { ContentType = SigninCard.ContentType, Content = signinCard }); var skillResponse = ExecuteActivityToResponse(mapper, new MergedActivityResult { MergedActivity = activity }, skillRequest); Assert.NotNull(skillResponse.Response.Card); Assert.Equal(typeof(LinkAccountCard), skillResponse.Response.Card.GetType()); }
public void MessageActivityWithAlexaCardDirectiveAttachmentsConverted() { var skillRequest = SkillRequestHelper.CreateIntentRequest(); var mapper = new AlexaRequestMapper(); var activity = Activity.CreateMessageActivity() as Activity; activity.Text = "Hello world"; var hintDirective = new HintDirective("hint text"); var displayDirective = new DisplayRenderTemplateDirective() { Template = new BodyTemplate1() { BackgroundImage = new TemplateImage() { ContentDescription = "Test", Sources = new List <ImageSource>() { new ImageSource() { Url = "https://via.placeholder.com/576.png/09f/fff", } } }, Content = new TemplateContent() { Primary = new TemplateText() { Text = "Test", Type = "PlainText" } }, Title = "Test title", } }; var simpleCard = new SimpleCard() { Title = "This is a simple card", Content = "This is the simple card content" }; activity.Attachments.Add(hintDirective.ToAttachment()); activity.Attachments.Add(displayDirective.ToAttachment()); activity.Attachments.Add(simpleCard.ToAttachment()); var skillResponse = ExecuteActivityToResponse(mapper, new MergedActivityResult { MergedActivity = activity }, skillRequest); VerifyCardAttachmentAndDirectiveResponse(skillResponse, simpleCard, new List <IDirective>() { hintDirective, displayDirective }); }
public void NonMessageActivityConverted() { var skillRequest = SkillRequestHelper.CreateIntentRequest(); var mapper = new AlexaRequestMapper(); var activity = Activity.CreateTraceActivity("This is a trace") as Activity; var skillResponse = ExecuteActivityToResponse(mapper, activity, skillRequest); VerifyPlainTextResponse(skillResponse, string.Empty); }
public void MessageActivityWithHeroCardConverted() { var skillRequest = SkillRequestHelper.CreateIntentRequest(); var mapper = new AlexaRequestMapper(); var heroCard = new HeroCard { Title = "Card title", Text = "Card text", Images = new List <Microsoft.Bot.Schema.CardImage> { new Microsoft.Bot.Schema.CardImage() { Url = "https://url" } }, Buttons = new List <CardAction>() { new CardAction { Title = "Places to buy", Type = ActionTypes.ImBack, Value = "Places To Buy" }, new CardAction { Title = "I feel lucky", Type = ActionTypes.OpenUrl, Image = "https://image", Value = "https://value" } } }; var activity = Activity.CreateMessageActivity() as Activity; activity.Attachments.Add(new Attachment() { ContentType = HeroCard.ContentType, Content = heroCard }); var skillResponse = ExecuteActivityToResponse(mapper, new MergedActivityResult { MergedActivity = activity }, skillRequest); Assert.NotNull(skillResponse.Response.Card); Assert.Equal(typeof(StandardCard), skillResponse.Response.Card.GetType()); var card = skillResponse.Response.Card as StandardCard; Assert.Equal(heroCard.Text, card.Content); Assert.Equal(heroCard.Title, card.Title); Assert.Equal(heroCard.Images[0].Url, heroCard.Images[0].Url); }
public void SimpleIntentRequestConverted() { var skillRequest = SkillRequestHelper.CreateIntentRequest(); var mapperOptions = new AlexaRequestMapperOptions { ServiceUrl = "service url" }; var mapper = new AlexaRequestMapper(mapperOptions); ((IntentRequest)skillRequest.Request).Intent.Slots[mapperOptions.DefaultIntentSlotName].Value = "hello world"; var convertedActivity = mapper.RequestToActivity(skillRequest); VerifyIntentRequest(skillRequest, convertedActivity, mapperOptions); }
public void PlainTextMessageActivityConverted() { var skillRequest = SkillRequestHelper.CreateIntentRequest(); var mapper = new AlexaRequestMapper(); var activity = Activity.CreateMessageActivity() as Activity; activity.Text = "Hello world"; activity.TextFormat = TextFormatTypes.Plain; var skillResponse = ExecuteActivityToResponse(mapper, activity, skillRequest); VerifyPlainTextResponse(skillResponse, activity.Text); }
public void AppostrophiesNotConvertedNonSsml() { const string text = "It's amazing <xml />"; var alexaAdapter = new AlexaRequestMapper(); var skillRequest = SkillRequestHelper.CreateIntentRequest(); var mapper = new AlexaRequestMapper(); var activity = Activity.CreateMessageActivity() as Activity; activity.Text = text; var processActivityResult = alexaAdapter.MergeActivities(new List <Activity>() { activity }); var skillResponse = ExecuteActivityToResponse(mapper, processActivityResult, skillRequest); VerifyPlainTextResponse(skillResponse, text); }
public void AppostrophiesNotConvertedSsml() { const string text = "It's amazing <break /> really"; var alexaAdapter = new AlexaRequestMapper(); var skillRequest = SkillRequestHelper.CreateIntentRequest(); var mapper = new AlexaRequestMapper(); var activity = Activity.CreateMessageActivity() as Activity; activity.Speak = text; var processActivityResult = alexaAdapter.MergeActivities(new List <Activity>() { activity }); var skillResponse = ExecuteActivityToResponse(mapper, processActivityResult, skillRequest); var outputSpeech = skillResponse.Response.OutputSpeech as SsmlOutputSpeech; Assert.Equal($"<speak>{text}</speak>", outputSpeech.Ssml); }