More Related Content
Similar to Mobile software desisgn (20)
Mobile software desisgn
- 4. Talk to them Make Friends Sell Stuff
Connecting billions of people living abroad
find people from their native country or city
- 8. The Frontend - Andriod App
Android UI
Activity
(Handler)
Activity Intent
Material Design
Android Service
( Async Task)
SMS Manager
GMaps Api
JSON based
HTTP
Request
- 9. The Backend - Node JSJSON based
HTTP
Request
Modulus
Express Server
-Dev
-Prod
JSON driven
configuration
service
Config Layer
/login
/users
/friends
/messages
/offers
. . .
Routing Layer
Auth
Messages
Offers
Users
...
DB Service Layer
DB Helper
MongoDBClient
DB Helper LayerJSON based
HTTP
Response
- 12. @MobileTest(device = "android:5.1", additionalCapabilities = { "appiumVersion:1.4.16", "deviceType:phone", "deviceName:Android Emulator",
"platformVersion:5.1", "platformName:Android", "locale:GB", "language:en" })
@Test(singleThreaded = true)
public class GoloOffer extends BaseTest {
@BeforeClass(alwaysRun = true)
public void initialize(ITestContext iTestContext) throws InterruptedException{
printMessage("Running Golo Offer");
}
@Test(groups = {"GOLO_OFFER"},priority=1)
public void viewOffer() throws Exception{
try{
try{
this.login("testuser@gmail.com","en");
WebDriverWaitUtils.waitUntilElementIsVisible(homePage.listOffersButton().getLocator());
}catch(Exception | Error ex ){
throw new SkipException("Login Failed",ex);
}
TestSteps.record(Priority.Major, "On Home Page");
try{
TestSteps.record(Priority.Major, "Navigating to Offer Page");
homePage.clickSendMoneyButton();
}catch(Exception ex){
throw new SkipException("Offer button not found",ex);
}
WebDriverWaitUtils.waitUntilElementIsVisible(offerPage.getListItem().getLocator());
sendMoneyIntroPage.clickFirstListButton()
WebDriverWaitUtils.waitUntilElementIsVisible(offerDetailPage.getOfferNameTextField().getLocator());
TestSteps.record(Priority.Critical, "On Offer Page");
String offerName = offerDetailPage.getOfferNameTextField().value();
String offerPrice = offerDetailPage.getOfferPriceTextField().value();
SeLionAsserts.assertNotEquals(offerName.length,0); //Testing name is not empty
SeLionAsserts.assertGreaterThan(offerPrice, 0); // Testing that price of offer should be grater than 0
offerDetailPage.clickCancelButton();
// Lot more flows to come here...
}
catch(Exception ex){
ex.printStackTrace();
mobileExceptions.recordAfterFailureException(null, ex,"View Offer Flow Failed",null,interestedUrls);
}
}
}