Exemplo n.º 1
0
        //
        // GET: /MultiD/
        public ActionResult Index()
        {
            MultiDialogueModel userView;

            try
            {
                userView = ViewStateManager.getViewFromViewState <MultiDialogueModel>(_multiDialogViewIndex);
            }
            catch (KeyNotFoundException)
            {
                userView = new MultiDialogueModel();
            }

            RAM_HelloWorldRepository rep = new RAM_HelloWorldRepository();

            rep.populateWithTestData();
            MultipleDialogs_Processor viewProcessor = new MultipleDialogs_Processor(userView, rep);

            _multiDialogViewIndex = viewProcessor.UserView.viewID;

            //viewProcessor.AddUserAction(new Dialog_UserActions.Action_SetSelectedLanguage { newLang = "ru" });
            //viewProcessor.AddUserAction(new Dialog_UserActions.Action_ReportUserName { userName = "******" });
            //viewProcessor.InvokeUserActions();
            viewProcessor.InvokeUserActions(ExtractRequestActions_Index());
            //viewProcessor.InvokeUserAction(new Dialog_UserActions.Action_SetSelectedLanguage {newLang = "de"});

            return(View("Index", viewProcessor.UserView));
        }
        public void SubDialog_SetValidSelectedLanguage()
        {
            //Arange
            string newLang = "de";
            MultipleDialogs_Processor processor = Get_MultiDialog_Processor(0);

            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.Action_AddNewDialog());
            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.Action_AddNewDialog());
            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.Action_AddNewDialog());
            processor.InvokeUserActions();
            Assert.Equal(3, processor.UserView.subViews_DialogWithUser.Count);
            int viewID = processor.UserView.viewID;
            int d2ID   = processor.UserView.subViews_DialogWithUser[1];

            //Act
            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.SubDialogAction_SetSelectedLanguage {
                newLang = newLang, subDialogID = d2ID
            });
            processor.InvokeUserActions();

            //Assert
            Assert.Equal(newLang, TestSettings.Get_UI_DialogWithUser(d2ID).strProp_selectedLanguage);
            Assert.True(TestSettings.Get_UI_DialogWithUser(d2ID).boolProp_isActionPossible_SelectLanguage);
            Assert.Equal("de_useSelectedLanguage", TestSettings.Get_UI_DialogWithUser(d2ID).strProp_actionExplanation_SelectLanguage);
        }
        public void ChangeSubViews()
        {
            //Arange
            MultipleDialogs_Processor processor = Get_MultiDialog_Processor(0);

            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.Action_AddNewDialog());
            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.Action_AddNewDialog());
            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.Action_AddNewDialog());
            processor.InvokeUserActions();
            Assert.Equal(3, processor.UserView.subViews_DialogWithUser.Count);
            int viewID = processor.UserView.viewID;
            int d1ID   = processor.UserView.subViews_DialogWithUser[0];
            int d2ID   = processor.UserView.subViews_DialogWithUser[1];
            int d3ID   = processor.UserView.subViews_DialogWithUser[2];

            //Act
            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.SubDialogAction_SetSelectedLanguage {
                newLang = "fr", subDialogID = d1ID
            });
            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.SubDialogAction_SetSelectedLanguage {
                newLang = "en", subDialogID = d2ID
            });
            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.SubDialogAction_SetSelectedLanguage {
                newLang = "ru", subDialogID = d3ID
            });
            processor.InvokeUserActions();

            ViewStateManager.saveViewToViewState(processor.UserView);

            //Assert
            Assert.Equal("fr", TestSettings.Get_UI_DialogWithUser(d1ID).strProp_selectedLanguage);
            Assert.Equal("en", TestSettings.Get_UI_DialogWithUser(d2ID).strProp_selectedLanguage);
            Assert.Equal("ru", TestSettings.Get_UI_DialogWithUser(d3ID).strProp_selectedLanguage);
        }
        public void AddNewDialog()
        {
            //Arrange
            MultipleDialogs_Processor processor = Get_MultiDialog_Processor(0);

            Assert.True(processor.UserView.subViews_DialogWithUser.Count == 0);

            //Act
            processor.InvokeUserAction(new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.Action_AddNewDialog());

            //Assert
            Assert.Equal(1, processor.UserView.subViews_DialogWithUser.Count);
        }
        public void AnswerChatAgainQuestion_NO()
        {
            //Arrange
            MultipleDialogs_Processor processor = Get_MultiDialog_Processor(0);

            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.Action_AddNewDialog());
            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.Action_AddNewDialog());
            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.Action_AddNewDialog());
            processor.InvokeUserActions();
            Assert.Equal(3, processor.UserView.subViews_DialogWithUser.Count);
            int viewID = processor.UserView.viewID;
            int d2ID   = processor.UserView.subViews_DialogWithUser[1];

            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.SubDialogAction_SetSelectedLanguage {
                newLang = "de", subDialogID = d2ID
            });
            processor.InvokeUserActions();
            ViewStateManager.saveViewToViewState(processor.UserView);

            processor = Get_MultiDialog_Processor(viewID);

            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.SubDialogAction_ReportUserName {
                userName = "******", subDialogID = d2ID
            });
            processor.InvokeUserActions();

            ViewStateManager.saveViewToViewState(processor.UserView);

            processor = Get_MultiDialog_Processor(viewID);

            //Act
            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.SubDialogAction_AcceptChatAgain {
                needChatAgain = false, subDialogID = d2ID
            });
            processor.InvokeUserActions();

            I_UI_DialogWithUser editedSubDlg = TestSettings.Get_UI_DialogWithUser(d2ID);

            //Assert
            Assert.Equal("", editedSubDlg.strProp_selectedLanguage);
            Assert.Equal("", editedSubDlg.strProp_userName);
            //Resetting all dialogue fields
            Assert.False(editedSubDlg.boolProp_isActionPossible_TellUserName);
            Assert.False(editedSubDlg.boolProp_greetingVisible);
            Assert.False(editedSubDlg.boolProp_isActionPossible_AnswerChatAgainQuestion);
        }
        public void SubDialog_SubmitUserName_languageAlreadySelected()
        {
            //Arrange
            string newUserName = "******";
            MultipleDialogs_Processor processor = Get_MultiDialog_Processor(0);

            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.Action_AddNewDialog());
            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.Action_AddNewDialog());
            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.Action_AddNewDialog());
            processor.InvokeUserActions();
            Assert.Equal(3, processor.UserView.subViews_DialogWithUser.Count);
            int viewID = processor.UserView.viewID;
            int d2ID   = processor.UserView.subViews_DialogWithUser[1];

            processor.AddUserAction(processor.UserView.viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.SubDialogAction_SetSelectedLanguage {
                newLang = "fr", subDialogID = d2ID
            });
            processor.InvokeUserActions();

            ViewStateManager.saveViewToViewState(processor.UserView);

            //Act
            processor = Get_MultiDialog_Processor(viewID);
            processor.AddUserAction(viewID, new BasementHelloWorldCommonParts.UA_Processors.MultipleDialogs_Processor.SubDialogAction_ReportUserName {
                userName = newUserName, subDialogID = d2ID
            });
            processor.InvokeUserActions();


            I_UI_DialogWithUser editedSubDlg = TestSettings.Get_UI_DialogWithUser(d2ID);

            //Assert
            Assert.Equal(newUserName, editedSubDlg.strProp_userName);
            Assert.False(editedSubDlg.boolProp_greetingVisible);
            Assert.False(editedSubDlg.boolProp_isActionPossible_TellUserName);
            Assert.True(editedSubDlg.boolProp_helloUserMessageVisible);
            Assert.Equal("helloUserMessage_fr_" + newUserName, editedSubDlg.strProp_helloUserMessageText);
            Assert.True(editedSubDlg.boolProp_isActionPossible_AnswerChatAgainQuestion);
            Assert.Equal("questionForChatingAgain_fr", editedSubDlg.strProp_questionForChatingAgain);
            Assert.Equal("yes_fr", editedSubDlg.strProp_actionExplanation_DoChatAgain);
            Assert.Equal("no_fr", editedSubDlg.strProp_actionExplanation_DontChatAgain);
        }