public void proceed(USSDRequest request, USSDSession <Object> session, USSDResponse response) { if (Filters.Count > 0) { Filters.ElementAt(0).doFilter(request, session, response, this); } }
public void mustRenderRequestSubmittedWindow() { USSDApplication app = getTestApp1(); USSDRequest request = app.newRequest("1234"); fillRequest(request); USSDResponse response = BantU.executeRequest(getTestApp1(), request); Assert.AreEqual("operations", response.getWindow().getId()); Assert.AreEqual(ResponseType.FORM, response.getResponseType()); request = app.newRequest("1"); fillRequest(request); response = BantU.executeRequest(getTestApp1(), request); Assert.AreEqual("transfers", response.getWindow().getId()); Assert.AreEqual(ResponseType.FORM, response.getResponseType()); request = app.newRequest("2"); fillRequest(request); response = BantU.executeRequest(getTestApp1(), request); Assert.AreEqual("amountWindow", response.getWindow().getId()); Assert.AreEqual(ResponseType.FORM, response.getResponseType()); request = app.newRequest("1000"); fillRequest(request); response = BantU.executeRequest(getTestApp1(), request); Assert.AreEqual("requestSubmitted", response.getWindow().getId()); Assert.AreEqual(ResponseType.MESSAGE, response.getResponseType()); }
private bool regularExpressionMatches(String regexp, String value, USSDRequest request) { Regex regex = new Regex(regexp); Match match = regex.Match(value); return(match.Success ? true : false); }
public BantURequestException(String message, USSDRequest request, USSDResponse response, USSDSession <Object> session, Exception cause) : base(message, cause) { this.request = request; this.response = response; this.session = session; }
public void doFilter(USSDRequest request, USSDSession <Object> session, USSDResponse response, USSDFilteringChain chain) { String cWName; Window currentWindow; cWName = session.getCurrentWindow(); if (String.IsNullOrEmpty(cWName)) { session.setCurrentWindow(request.getApplication().getStartupWindowId()); cWName = request.getApplication().getStartupWindowId(); } currentWindow = request.getApplication().getWindow(cWName); List <USSDFilter> windowFilters = request.getApplication().getWindowFilters(session.getCurrentWindow()); if (windowFilters.Count > 0) { foreach (USSDFilter filter in windowFilters) { chain.appendFilter(filter); } BaseUSSDFilter ussdFilter = new BaseUSSDFilter(); ussdFilter.proceedProcessing = new BaseUSSDFilter.ProceedProcessing(proceedProcessing); chain.appendFilter(ussdFilter); chain.proceed(request, session, response); session.saveSession(); } }
private void proceedProcessing(USSDRequest request, USSDSession <object> session, USSDResponse response, String currentWindowName, Window currentWindow) { if (currentWindow == null) { throw new WindowNotFoundException(currentWindowName, request, response, session); } }
protected void delegateRequest(USSDRequest request, USSDSession <Object> session, USSDResponse response) { USSDResponse ussdResponse = BantU.executeRequest(application, request, session); response.setWindow(ussdResponse.getWindow()); response.setResponseType(ussdResponse.getResponseType()); response.setSession(ussdResponse.getSession()); }
public void mustRenderOperationsWindow() { USSDRequest request = getTestApp1().newRequest("1234"); fillRequest(request); USSDResponse response = BantU.executeRequest(getTestApp1(), request); Assert.AreEqual("operations", response.getWindow().getId()); Assert.AreEqual(ResponseType.FORM, response.getResponseType()); }
public void mustRenderLoginWindow() { USSDRequest request = getTestApp1().newRequest(TEST_BASE_CODE); fillRequest(request); USSDResponse response = BantU.executeRequest(getTestApp1(), request); Assert.AreEqual("login", response.getWindow().getId()); Assert.AreEqual(ResponseType.FORM, response.getResponseType()); }
public void mustRenderPasswordRecoverWindow() { USSDRequest request = getTestApp1().newRequest("1111"); fillRequest(request); USSDApplication app = getTestApp1(); USSDResponse response = BantU.executeRequest(getTestApp1(), request); Assert.AreEqual("recoverPassowrd", response.getWindow().getId()); Assert.AreEqual(ResponseType.MESSAGE, response.getResponseType()); }
public USSDSession <Object> getSession(USSDRequest request) { BasicSession bSession = new BasicSession(); if (!sessions.ContainsKey(request.getMSISDN())) { sessions.Add(request.getMSISDN(), bSession); } return((USSDSession <Object>)sessions[request.getMSISDN()]); }
public Task <string> SendCheckSMS() { sendUSSDTcs = new TaskCompletionSource <string>(); var req = new USSDRequest(); req.Content = "CheckSMS".GetPropertyFromRegistry(); req.SendWithReply(driver); return(sendUSSDTcs.Task); }
public void process(USSDRequest request, USSDSession <Object> session, USSDResponse response) { String pin = session["pin"].ToString(); if (pin.Equals("1234")) { request.redirectTo("operations", session, response); } else { request.redirectTo("recoverPassword", session, response); } }
public List <MenuItem> getMenuItems(String windowName, USSDRequest request, USSDSession <Object> session) { List <MenuItem> menuItems = new List <MenuItem>(); menuItems.Add(new MenuItem { Description = "3400231", TargetWindow = "amountWindow" }); menuItems.Add(new MenuItem { Description = "171021", TargetWindow = "amountWindow" }); return(menuItems); }
private void getMenuItemsFromProviders(Window window, USSDRequest request, USSDSession <object> session) { List <MenuItemsProvider> menuItemsProviders = window.getMenuItemsProvider(); foreach (MenuItemsProvider provider in menuItemsProviders) { List <MenuItem> menuItems = provider.getMenuItems(window.getId(), request, session); foreach (MenuItem menu in menuItems) { window.getMenuItems().Add(menu); } } }
private String whereToGo(MenuItem menuItem, USSDRequest request, USSDResponse response, USSDSession <Object> session) { if (menuItem.TargetWindow.Equals(BACKWARD_TARGET_WINDOW)) { if (session.getPreviousWindow() == null) { throw new ImpossibleBackwardRedirectException(menuItem, request, response, session); } return(session.getPreviousWindow()); } return(menuItem.TargetWindow); }
public void windowFilterMustBeInvoked() { USSDApplication app = new BaseUSSDApplication(); Window window = new Window("startup"); window.addMessage(new Message("Welcome, please type something")); window.setInput(new Input { Name = "something" }); app.addWindowFilter(window.getId(), new StartupWindowFirstFilter()); app.addWindowFilter(window.getId(), new StartupWindowSecondFilter()); app.addWindow(window); app.setStartupWindowId(window.getId()); USSDRequest request = app.newRequest(TEST_BASE_CODE); fillRequest(request); USSDResponse response = BantU.executeRequest(app, request); Assert.AreEqual("Altered by the second filter", response.getWindow().getMessages()[0]); }
public WindowFetchFailedException(String windowId, USSDRequest request, USSDResponse response, USSDSession <Object> session) : base(String.Format("Failed to fetch window with Id {%s} from NavigationCache", windowId), request, response, session) { }
public void process(USSDRequest request, USSDSession <Object> session, USSDResponse response) { request.redirectTo("requestSubmited", session, response); }
public void storeWindow(Window window, USSDRequest request, USSDSession <Object> session) { items[window.getId()] = window; }
public ImpossibleBackwardRedirectException(MenuItem menuItem, USSDRequest request, USSDResponse response, USSDSession <Object> session) : base(String.Format("Session has no valid previousWindow value. User cant be redirected backward by %s Menu Item.", menuItem.getId()), request, response, session) { }
public static USSDResponse executeRequest(USSDApplication application, USSDRequest request, USSDSession <Object> session) { USSDResponse ussdResponse = new BaseUSSDResponse(); USSDSession <object> ussdSession = session; if (ussdSession == null) { SessionProvider sessionProvider = application.getSessionProvider(); if (sessionProvider == null) { throw new BantUException(String.Format("The instance must not be null")); // ToDo: Implement as is in Java } ussdSession = sessionProvider.getSession(request); if (ussdSession == null) { throw new NullReferenceException(String.Format("The %s instance returned by %s must not be null")); } } request.setApplication(application); ussdResponse.setSession(session); if (!application.getFilters().Contains(CoreFilter)) { application.getFilters().Add(CoreFilter); } USSDFilteringChain chain = createFilteringChain(application); chain.proceed(request, ussdSession, ussdResponse); if (request is GetRequest || request is PostRequest) { if (ussdResponse.getWindow().isForm()) { ussdResponse.setResponseType(ResponseType.FORM); } else { ussdResponse.setResponseType(ResponseType.MESSAGE); } } else { ussdResponse.setResponseType(ResponseType.MESSAGE); } if (ussdResponse.getResponseType() == ResponseType.FORM) { BaseNavigationCache navigationCache = (BaseNavigationCache)application.getNavigationCache(); if (navigationCache != null) { try { navigationCache.storeWindow(ussdResponse.getWindow(), request, session); } catch (Exception ex) { throw new WindowStoreFailedException(ussdResponse.getWindow().getId(), request, ussdResponse, session); } } else { ussdSession.close(); } } return(ussdResponse); }
public Window fetchWindow(String windowId, USSDRequest request, USSDSession <Object> session) { return(items[windowId]); }
public static USSDResponse executeRequest(USSDApplication application, USSDRequest request) { return(executeRequest(application, request, null)); }
public void wipeSession() { USSDRequest request = getTestApp1().newRequest(TEST_BASE_CODE); }
public HttpResponseMessage ProcessUSSDRequest([FromBody] USSDRequest request) { return(ParseRequest(request.Text)); }
private void fillRequest(USSDRequest request) { request.setMSISDN("+258842538083"); //TODO: Set more stuff here }
public void doFilter(USSDRequest request, USSDSession <Object> session, USSDResponse response, USSDFilteringChain chain) { chain.proceed(request, session, response); response.getWindow().getMessages()[0].setContent("Altered by the second filter"); }
public void doFilter(USSDRequest request, USSDSession <Object> session, USSDResponse response, USSDFilteringChain chain) { proceedProcessing(request, session, response, currentWindowName, currentWindow); }
public WindowNotFoundException(String name, USSDRequest request, USSDResponse response, USSDSession <object> session) : base(String.Format("A window with name \"%s\" could not be found.", name), request, response, session) { this.windowName = name; }