public void Test_DialogueController_StartDialogue() { Assert.AreEqual(m_currentDialogue, null); for (int i = 0; i < 3; i++) { m_dialogueController.StartDialogue(); Assert.AreEqual(m_currentDialogue, m_dialogue); // begin text m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, "Begin Text"); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, "Text 1"); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, "Text 2.1"); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, null); // current dialogue has ended Assert.AreEqual(m_currentDialogue, null); } }
public void TestOptions() { Assert.AreEqual(m_currentDialogue, null); /** * Test to select Option 1 */ // begin dialogue m_dialogueController.StartDialogue(); Assert.AreEqual(m_currentDialogue, m_dialogue); // begin text m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, "Begin Text"); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, "Text 1"); Assert.AreEqual(m_currentDialogueOptions, null); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, null); Assert.AreNotEqual(m_currentDialogueOptions, null); // Dialogue options keep emitting m_dialogueController.Next(); Assert.AreNotEqual(m_currentDialogueOptions, null); Assert.AreEqual(m_currentDialogueOptions.Count, 2); DialogueOption dialogueOption1 = m_currentDialogueOptions[0]; m_dialogueController.SelectOption(dialogueOption1); Assert.AreEqual(m_currentDialogueText, "Text 2.1"); Assert.AreEqual(m_currentDialogueOptions, null); // No effect m_dialogueController.SelectOption(dialogueOption1); Assert.AreEqual(m_currentDialogueText, "Text 2.1"); Assert.AreEqual(m_currentDialogueOptions, null); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, null); // current dialogue has ended Assert.AreEqual(m_currentDialogue, null); /** * Test to select Option 1 */ // begin dialogue m_dialogueController.StartDialogue(); Assert.AreEqual(m_currentDialogue, m_dialogue); // begin text m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, "Begin Text"); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, "Text 1"); Assert.AreEqual(m_currentDialogueOptions, null); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, null); Assert.AreNotEqual(m_currentDialogueOptions, null); // Dialogue options keep emitting m_dialogueController.Next(); Assert.AreNotEqual(m_currentDialogueOptions, null); Assert.AreEqual(m_currentDialogueOptions.Count, 2); DialogueOption dialogueOption2 = m_currentDialogueOptions[0]; m_dialogueController.SelectOption(dialogueOption2); Assert.AreEqual(m_currentDialogueText, "Text 2.1"); Assert.AreEqual(m_currentDialogueOptions, null); // No effect m_dialogueController.SelectOption(dialogueOption2); Assert.AreEqual(m_currentDialogueText, "Text 2.1"); Assert.AreEqual(m_currentDialogueOptions, null); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, null); /** * Test to select Option 2 */ // begin dialogue m_dialogueController.StartDialogue(); Assert.AreEqual(m_currentDialogue, m_dialogue); // begin text m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, "Begin Text"); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, "Text 1"); Assert.AreEqual(m_currentDialogueOptions, null); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, null); Assert.AreNotEqual(m_currentDialogueOptions, null); // Dialogue options keep emitting m_dialogueController.Next(); Assert.AreNotEqual(m_currentDialogueOptions, null); Assert.AreEqual(m_currentDialogueOptions.Count, 2); DialogueOption dialogueOption3 = m_currentDialogueOptions[1]; m_dialogueController.SelectOption(dialogueOption3); Assert.AreEqual(m_currentDialogueText, "Text 2.2"); Assert.AreEqual(m_currentDialogueOptions, null); // No effect m_dialogueController.SelectOption(dialogueOption3); Assert.AreEqual(m_currentDialogueText, "Text 2.2"); Assert.AreEqual(m_currentDialogueOptions, null); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, null); }
public void TestLinearDialogue() { /* Setup */ Dialogue linearDialogue = ScriptableObject.CreateInstance <Dialogue>(); DialogueText beginText = ScriptableObject.CreateInstance <DialogueText>(); Utils.ExecuteSetter(beginText, "m_text", (textProp) => { textProp.stringValue = "Begin Text"; }); Utils.ExecuteSetter(linearDialogue, "m_finalBeginText", (finalBeginTextProp) => { finalBeginTextProp.objectReferenceValue = beginText; }); Utils.ExecuteSetter(linearDialogue, "m_dialogueNodes", (dialogueNodesProp) => { DialogueText text1 = ScriptableObject.CreateInstance <DialogueText>(); Utils.ExecuteSetter(text1, "m_text", (textProp) => textProp.stringValue = "Text 1"); DialogueText text2 = ScriptableObject.CreateInstance <DialogueText>(); Utils.ExecuteSetter(text2, "m_text", (textProp) => textProp.stringValue = "Text 2"); Utils.ExecuteSetterArrayAutoIncrement(dialogueNodesProp, null, (dialogueNodeProp) => { Utils.ExecuteSetter(dialogueNodeProp, "m_dialogueText", (dialogueTextProp) => { dialogueTextProp.objectReferenceValue = beginText; }); Utils.ExecuteSetter(dialogueNodeProp, "m_finalNext", (finalNextProp) => { finalNextProp.objectReferenceValue = text1; }); }); Utils.ExecuteSetterArrayAutoIncrement(dialogueNodesProp, null, (dialogueNodeProp) => { Utils.ExecuteSetter(dialogueNodeProp, "m_dialogueText", (dialogueTextProp) => { dialogueTextProp.objectReferenceValue = text1; }); Utils.ExecuteSetter(dialogueNodeProp, "m_finalNext", (finalNextProp) => { finalNextProp.objectReferenceValue = text2; }); }); Utils.ExecuteSetterArrayAutoIncrement(dialogueNodesProp, null, (dialogueNodeProp) => { Utils.ExecuteSetter(dialogueNodeProp, "m_dialogueText", (dialogueTextProp) => { dialogueTextProp.objectReferenceValue = text2; }); Utils.ExecuteSetter(dialogueNodeProp, "m_finalNext", (finalNextProp) => { finalNextProp.objectReferenceValue = null; }); }); }); /** End setup **/ Utils.ExecuteSetter(m_dialogueController, "m_dialogue", (dialogueProp) => { dialogueProp.objectReferenceValue = linearDialogue; }); Assert.AreEqual(m_currentDialogue, null); // begin dialogue m_dialogueController.StartDialogue(); Assert.AreEqual(m_currentDialogue, linearDialogue); // begin text m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, "Begin Text"); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, "Text 1"); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, "Text 2"); m_dialogueController.Next(); Assert.AreEqual(m_currentDialogueText, null); // current dialogue has ended Assert.AreEqual(m_currentDialogue, null); }