public async Task Subscription_PrimitiveChildAdded_ShouldDeserializePrimitiveObject() { // Arrange await FirebaseHelper.ImportDatabase("NumberArray.json"); Semaphore semaphore = new Semaphore(0, 7); bool wasNumberProperlyDeserialized = false; Action <int> onChildAdded = (int number) => { if (number == 6) { wasNumberProperlyDeserialized = true; } semaphore.Release(); }; var childAddedSub = Database.Ref("Array").OnChildAdded(onChildAdded); // Act await Database.Ref("Array").Child("6").Set(6); // Assert WaitFor(7, semaphore); Assert.IsTrue(wasNumberProperlyDeserialized); // Teardown childAddedSub.Stop(); }
public async Task SetUp() { FirebaseHelper = new FirebaseHelper(); Database = new FirebaseDatabase(DatabaseUrl, () => Task.FromResult(DatabaseSecret)); await FirebaseHelper.UpdateRules("AllowEverything.json"); await FirebaseHelper.ImportDatabase("People.json"); }
public async Task Once_InvalidToken_ShouldThrowCouldNotParseAuthTokenException() { // Arrange FirebaseDatabase UnauthenticatedDatabase = new FirebaseDatabase(DatabaseUrl, () => Task.FromResult("2K7qdbC2X9nQNRzlqQC14XmsGPR6Y5phUfxC2B5Z")); await FirebaseHelper.UpdateRules("DenyEverything.json"); // Act & Assert Assert.That(async() => await UnauthenticatedDatabase.Ref("People").Once <PeopleMap>(), Throws.Exception.InstanceOf <CouldNotParseAuthTokenException>()); }
public async Task Login_InvalidCredentials_ShouldThrowAuthenticationException() { // Arrange var email = $"{Guid.NewGuid().ToString()}@example.com"; await FirebaseHelper.CreateUser(email, Constants.Password, Constants.DisplayName); // Act & Assert Assert.That(async() => await AuthService.LoginWithEmailAndPassword(email, Constants.Password + "flop"), Throws.Exception.TypeOf <AuthenticationException>()); }
public async Task Login_AlreadyLoggedIn_ShouldThrowAlreadyLoggedInException() { // Arrange var email = $"{Guid.NewGuid().ToString()}@example.com"; await FirebaseHelper.CreateUser(email, Constants.Password, Constants.DisplayName); // Act & Assert await AuthService.LoginWithEmailAndPassword(email, Constants.Password); Assert.That(async() => await AuthService.LoginWithEmailAndPassword(email, Constants.Password), Throws.Exception.TypeOf <AlreadyLoggedInException>()); }
public async Task Once_StringArray_ShouldDeserializeIntoList() { // Arrange await FirebaseHelper.ImportDatabase("StringArray.json"); // Act var list = await Database.Ref("Array").Once <List <string> >(); // Assert Assert.AreEqual("Helo", list[0]); Assert.AreEqual("Hey", list[1]); Assert.AreEqual("Bonjourno", list[2]); Assert.AreEqual("Hola", list[3]); }
public async Task Login_ValidCredentials_ShouldEmitCurrentUserChanged() { // Arrange var wasCalled = false; var email = $"{Guid.NewGuid().ToString()}@example.com"; await FirebaseHelper.CreateUser(email, Constants.Password, Constants.DisplayName); AuthService.CurrentUserChanged += u => { wasCalled = true; }; // Act var user = await AuthService.LoginWithEmailAndPassword(email, Constants.Password); // Assert Assert.IsTrue(wasCalled); Assert.AreEqual(Constants.DisplayName, user?.DisplayName); Assert.AreEqual(email, user?.Email); }
public async Task Logout_UserLoggedIn_ShouldEmitCurrentUserChangedAndPutCurrentUserToNull() { // Arrange var numberOfCalls = 0; var email = $"{Guid.NewGuid().ToString()}@example.com"; await FirebaseHelper.CreateUser(email, Constants.Password, Constants.DisplayName); AuthService.CurrentUserChanged += u => { ++numberOfCalls; }; // Act await AuthService.LoginWithEmailAndPassword(email, Constants.Password); AuthService.Logout(); // Assert Assert.AreEqual(2, numberOfCalls); Assert.IsNull(AuthService.CurrentUser); }
public async Task TearDown() { await FirebaseHelper.CleanUp(); }
public void SetUp() { FirebaseHelper = new FirebaseHelper(); AuthService = new FirebaseAuthenticationService(); }