use of com.google.firebase.database.DatabaseReference in project SEProject by NicholasBarreyre.
the class AccountManagerTest method setUserLoggedInFalseTest.
/**
* Tests that a user that has been authenticated is tagged as logged in
*
* Will pass if there exists a child node in the online_users reference equal to the users
* username.
*
* @throws Exception
*/
@Test
public void setUserLoggedInFalseTest() throws Exception {
// create a test user and set them as online
User testUser = TestingHelper.createTestUser();
// set the user as online then set them as offline
AccountManager.setUserLoginState(testUser.getUsername(), false);
// attempt to retrieve a reference to the logged in user
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference usersReference = database.getReference("online_users/" + testUser.getUsername());
// attach a listener for data changes of the users reference. this will occur when
// the reference is populated
usersReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
// if the reference exists, then the user is tagged as logged in and we should fail
// the test, otherwise it should succeed
assertFalse("Expecting non-empty result from database, but no data returned...", dataSnapshot.exists());
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
}
use of com.google.firebase.database.DatabaseReference in project SEProject by NicholasBarreyre.
the class AccountManagerTest method toggleOnlineUserTest.
@Test
public void toggleOnlineUserTest() throws Exception {
final User testUser = TestingHelper.createTestUser();
AccountManager.createUser(testUser);
sleep(1000);
AccountManager.authenticate(testUser, TestingHelper.assertTrueBooleanResult());
sleep(1000);
AccountManager.setOnline(false);
testUser.addUserExercise(TestingHelper.testExercise1);
AccountManager.updateUser(testUser);
AccountManager.setOnline(true);
sleep(1000);
// retrieve a reference to the users node
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference usersReference = database.getReference("users/" + testUser.getUsername());
// attach a listener for data changes of the users reference. this will occur when
// the reference is populated
usersReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
assertTrue(dataSnapshot.exists());
if (dataSnapshot.exists()) {
assertEquals(1, dataSnapshot.getValue(User.class).getUserExercises().size());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
sleep(1000);
AccountManager.deleteUser(testUser, TestingHelper.assertTrueBooleanResult());
}
use of com.google.firebase.database.DatabaseReference in project SEProject by NicholasBarreyre.
the class TestingHelper method addTestUserExercises.
/**
* Test helper to add test exercises to testuser
*/
public static void addTestUserExercises() {
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference usersReference = database.getReference("users/testuser");
ArrayList<Exercise> testExercises = new ArrayList<>();
testExercises.add(testExercise1);
testExercises.add(testExercise2);
testExercises.add(testExercise3);
usersReference.child("userExercises").setValue(testExercises);
}
use of com.google.firebase.database.DatabaseReference in project SEProject by NicholasBarreyre.
the class TestingHelper method resetTestUserWorkouts.
/**
* Test helper to reset the testuser's workout list
*/
public static void resetTestUserWorkouts() {
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference usersReference = database.getReference("users/testuser");
usersReference.child("userWorkouts").setValue(null);
}
use of com.google.firebase.database.DatabaseReference in project SEProject by NicholasBarreyre.
the class TestingHelper method resetTestTeam.
public static void resetTestTeam() {
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference teamsReference = database.getReference("teams");
teamsReference.child("testteam").setValue(null);
}
Aggregations