public async Task KanjiTest(string entry, string title, string meaning, string imageUrl, string radical, string[] parts, string[] onyomi, string[] kunyomi) { bool isDone = false; var callback = new Func <UnitTestUserMessage, Task>((msg) => { Assert.AreEqual(1, msg.Embeds.Count); var embed = msg.Embeds.ElementAt(0); Assert.AreEqual(4, embed.Fields.Length); Assert.AreEqual(title, embed.Title); Assert.AreEqual(meaning, embed.Description); Assert.True(embed.Image.HasValue); Assert.AreEqual(imageUrl, embed.Image.Value.Url); Assert.AreEqual(radical, embed.Fields[0].Value); var split1 = embed.Fields[1].Value.Split('\n'); Assert.AreEqual(parts.Length, split1.Length); for (int i = 0; i < parts.Length; i++) { Assert.AreEqual(parts[i], split1[i]); } var split2 = embed.Fields[2].Value.Split('\n'); Assert.AreEqual(onyomi.Length, split2.Length); for (int i = 0; i < onyomi.Length; i++) { Assert.AreEqual(onyomi[i], split2[i]); } var split3 = embed.Fields[3].Value.Split('\n'); Assert.AreEqual(kunyomi.Length, split3.Length); for (int i = 0; i < kunyomi.Length; i++) { Assert.AreEqual(kunyomi[i], split3[i]); } isDone = true; return(Task.CompletedTask); }); var mod = new Module.Tool.LanguageModule(); Common.AddContext(mod, callback); await mod.KanjiAsync(entry); while (!isDone) { } }
public async Task JapaneseTest(string entry, string title1, string contentLine1) // If the first line is okay, the rest should be okay too { bool isDone = false; var callback = new Func <UnitTestUserMessage, Task>((msg) => { Assert.AreEqual(1, msg.Embeds.Count); var embed = msg.Embeds.ElementAt(0); Assert.AreEqual(5, embed.Fields.Length); var firstField = embed.Fields[0]; Assert.AreEqual(title1, firstField.Name); Assert.AreEqual(contentLine1, firstField.Value.Split('\n')[0]); isDone = true; return(Task.CompletedTask); }); var mod = new Module.Tool.LanguageModule(); Common.AddContext(mod, callback); await mod.JapaneseAsync(entry); while (!isDone) { } }