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()); }
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()); }
private static USSDFilteringChain createFilteringChain(USSDApplication application) { List <USSDFilter> filters = new List <USSDFilter>(); foreach (USSDFilter f in application.getFilters()) { filters.Add(f); } BaseUSSDFilteringChain chain = new BaseUSSDFilteringChain(); chain.Filters = filters; return(chain); }
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 static USSDResponse executeRequest(USSDApplication application, USSDRequest request) { return(executeRequest(application, request, null)); }
public void setApplication(USSDApplication application) { this.application = application; }