52 lines
2.6 KiB
C#
52 lines
2.6 KiB
C#
using BotSharp.Core.Engines;
|
|
using BotSharp.Core.Models;
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
|
|
namespace BotSharp.UnitTest
|
|
{
|
|
[TestClass]
|
|
public class ConversationTest : TestEssential
|
|
{
|
|
[TestMethod]
|
|
public void TextRequest()
|
|
{
|
|
var rasa = new RasaAi();
|
|
var agent = rasa.LoadAgent(BOT_ID);
|
|
|
|
var config = new AIConfiguration(agent.ClientAccessToken, SupportedLanguage.English) { AgentId = BOT_ID };
|
|
config.SessionId = Guid.NewGuid().ToString();
|
|
|
|
// Round 1
|
|
var response = rasa.TextRequest(new AIRequest { Query = new String[] { "Can you play country music?" } });
|
|
Assert.AreEqual(response.Result.Metadata.IntentName, "music.play");
|
|
Assert.AreEqual(response.Result.Contexts.First(x => x.Name == "music-player-control").Lifespan, 3);
|
|
Assert.AreEqual(response.Result.Contexts.First(x => x.Name == "play-music").Lifespan, 5);
|
|
Assert.AreEqual(response.Result.Parameters.First(x => x.Key == "genre").Value, "country");
|
|
|
|
// Round 2
|
|
response = rasa.TextRequest(new AIRequest { Query = new String[] { "pause it" } });
|
|
Assert.AreEqual(response.Result.Metadata.IntentName, "music_player_control.pause");
|
|
Assert.AreEqual(response.Result.Contexts.First(x => x.Name == "music-player-control").Lifespan, 3);
|
|
Assert.AreEqual(response.Result.Contexts.First(x => x.Name == "play-music").Lifespan, 4);
|
|
|
|
// Round 3
|
|
response = rasa.TextRequest(new AIRequest { Query = new String[] { "continue" } });
|
|
Assert.AreEqual(response.Result.Metadata.IntentName, "music_player_control.resume");
|
|
Assert.AreEqual(response.Result.Contexts.First(x => x.Name == "music-player-control").Lifespan, 3);
|
|
Assert.AreEqual(response.Result.Contexts.First(x => x.Name == "play-music").Lifespan, 3);
|
|
|
|
// Round 4
|
|
response = rasa.TextRequest(new AIRequest { Query = new String[] { "play Hard Times by David Newman" } });
|
|
Assert.AreEqual(response.Result.Metadata.IntentName, "music.play");
|
|
Assert.AreEqual(response.Result.Contexts.First(x => x.Name == "music-player-control").Lifespan, 3);
|
|
Assert.AreEqual(response.Result.Contexts.First(x => x.Name == "play-music").Lifespan, 5);
|
|
Assert.AreEqual(response.Result.Parameters.First(x => x.Key == "song").Value, "Hard Times");
|
|
Assert.AreEqual(response.Result.Parameters.First(x => x.Key == "artist").Value, "David Newman");
|
|
}
|
|
}
|
|
}
|