/*
* VITacademics
* Copyright (C) 2015 Aneesh Neelam <neelam.aneesh@gmail.com>
* Copyright (C) 2015 Saurabh Joshi <saurabhjoshi94@outlook.com>
* Copyright (C) 2015 Gaurav Agerwala <gauravagerwala@gmail.com>
* Copyright (C) 2015 Karthik Balakrishnan <karthikb351@gmail.com>
* Copyright (C) 2015 Pulkit Juneja <pulkit.16296@gmail.com>
* Copyright (C) 2015 Hemant Jain <hemanham@gmail.com>
* Copyright (C) 2015 Darshan Mehta <darshanmehta17@gmail.com>
*
* This file is part of VITacademics.
*
* VITacademics is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* VITacademics is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with VITacademics. If not, see <http://www.gnu.org/licenses/>.
*/
package com.karthikb351.vitinfo2;
import android.test.AndroidTestCase;
import com.google.gson.Gson;
import com.karthikb351.vitinfo2.api.StatusCodes;
import com.karthikb351.vitinfo2.contract.Friend;
import com.karthikb351.vitinfo2.response.GradesResponse;
import com.karthikb351.vitinfo2.response.LoginResponse;
import com.karthikb351.vitinfo2.response.RefreshResponse;
import com.karthikb351.vitinfo2.response.SystemResponse;
import com.karthikb351.vitinfo2.response.TokenResponse;
import com.karthikb351.vitinfo2.utility.Constants;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class TestJSONParser extends AndroidTestCase {
private Gson gson;
@Override
public void setUp() throws Exception {
super.setUp();
gson = new Gson();
}
public void testSystemJSON() {
BufferedReader jsonStreamReader = new BufferedReader(new InputStreamReader(getContext().getResources().openRawResource(R.raw.api_sample_system)));
SystemResponse systemResponse = gson.fromJson(jsonStreamReader, SystemResponse.class);
assertNotNull(systemResponse);
assertNotNull(systemResponse.getStatus());
assertNotNull(systemResponse.getAndroid());
assertNotNull(systemResponse.getContributors());
assertNotNull(systemResponse.getMessages());
assertNotNull(systemResponse.getAndroid().getEarliestSupportedVersion());
assertNotNull(systemResponse.getAndroid().getLatestVersion());
assertEquals(StatusCodes.SUCCESS, systemResponse.getStatus().getCode());
}
public void testLoginJSON() {
BufferedReader jsonStreamReader = new BufferedReader(new InputStreamReader(getContext().getResources().openRawResource(R.raw.api_sample_login)));
LoginResponse loginResponse = gson.fromJson(jsonStreamReader, LoginResponse.class);
assertNotNull(loginResponse);
assertNotNull(loginResponse.getStatus());
assertNotNull(loginResponse.getCampus());
assertNotNull(loginResponse.getRegisterNumber());
assertNotNull(loginResponse.getDateOfBirth());
if (loginResponse.getCampus().equals(Constants.CAMPUS_VELLORE)) {
assertNotNull(loginResponse.getMobileNumber());
}
assertEquals(StatusCodes.SUCCESS, loginResponse.getStatus().getCode());
}
public void testRefreshJSON() {
BufferedReader jsonStreamReader = new BufferedReader(new InputStreamReader(getContext().getResources().openRawResource(R.raw.api_sample_refresh)));
RefreshResponse refreshResponse = gson.fromJson(jsonStreamReader, RefreshResponse.class);
assertNotNull(refreshResponse);
assertNotNull(refreshResponse.getStatus());
assertNotNull(refreshResponse.getCampus());
assertNotNull(refreshResponse.getRegisterNumber());
assertNotNull(refreshResponse.getDateOfBirth());
if (refreshResponse.getCampus().equals(Constants.CAMPUS_VELLORE)) {
assertNotNull(refreshResponse.getMobileNumber());
}
assertNotNull(refreshResponse.getSemester());
assertNotNull(refreshResponse.getCourses());
assertNotNull(refreshResponse.getWithdrawnCourses());
assertNotNull(refreshResponse.getRefreshed());
assertFalse(refreshResponse.isCached());
assertEquals(StatusCodes.SUCCESS, refreshResponse.getStatus().getCode());
}
public void testGradesJSON() {
BufferedReader jsonStreamReader = new BufferedReader(new InputStreamReader(getContext().getResources().openRawResource(R.raw.api_sample_grades)));
GradesResponse gradesResponse = gson.fromJson(jsonStreamReader, GradesResponse.class);
assertNotNull(gradesResponse);
assertNotNull(gradesResponse.getStatus());
assertNotNull(gradesResponse.getCampus());
assertNotNull(gradesResponse.getRegisterNumber());
assertNotNull(gradesResponse.getDateOfBirth());
if (gradesResponse.getCampus().equals(Constants.CAMPUS_VELLORE)) {
assertNotNull(gradesResponse.getMobileNumber());
}
assertNotNull(gradesResponse.getCgpa());
assertNotNull(gradesResponse.getCreditsEarned());
assertNotNull(gradesResponse.getCreditsRegistered());
assertNotNull(gradesResponse.getGrades());
assertNotNull(gradesResponse.getGradeCount());
assertNotNull(gradesResponse.getSemesterWiseGrades());
assertNotNull(gradesResponse.getRefreshed());
assertFalse(gradesResponse.isCached());
assertEquals(StatusCodes.SUCCESS, gradesResponse.getStatus().getCode());
}
public void testTokenJSON() {
BufferedReader jsonStreamReader = new BufferedReader(new InputStreamReader(getContext().getResources().openRawResource(R.raw.api_sample_token)));
TokenResponse tokenResponse = gson.fromJson(jsonStreamReader, TokenResponse.class);
assertNotNull(tokenResponse);
assertNotNull(tokenResponse.getStatus());
assertNotNull(tokenResponse.getCampus());
assertNotNull(tokenResponse.getRegisterNumber());
assertNotNull(tokenResponse.getDateOfBirth());
if (tokenResponse.getCampus().equals(Constants.CAMPUS_VELLORE)) {
assertNotNull(tokenResponse.getMobileNumber());
}
assertNotNull(tokenResponse.getTokenShare());
assertEquals(StatusCodes.SUCCESS, tokenResponse.getStatus().getCode());
}
public void testShareJSON() {
BufferedReader jsonStreamReader = new BufferedReader(new InputStreamReader(getContext().getResources().openRawResource(R.raw.api_sample_share)));
Friend friend = gson.fromJson(jsonStreamReader, Friend.class);
assertNotNull(friend);
assertNotNull(friend.getStatus());
assertNotNull(friend.getCampus());
assertNotNull(friend.getRegisterNumber());
assertNotNull(friend.getDateOfBirth());
if (friend.getCampus().equals(Constants.CAMPUS_VELLORE)) {
assertNotNull(friend.getMobileNumber());
}
assertNotNull(friend.getCourses());
assertNotNull(friend.getRefreshed());
assertEquals(StatusCodes.SUCCESS, friend.getStatus().getCode());
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
}