public async void UserCurrent_WhenThereIsMoreThanOneUser_ShouldThrow() { await User.LoginAsync(Credentials.AccessToken("foo:bar", Guid.NewGuid().ToString(), true), new Uri("http://localhost:9080")); await User.LoginAsync(Credentials.AccessToken("bar:foo", Guid.NewGuid().ToString(), true), new Uri("http://localhost:9080")); Assert.That(() => User.Current, Throws.TypeOf <RealmException>()); }
public static async Task <Realm> GetFakeRealm(bool isUserAdmin) { var user = await User.LoginAsync(Credentials.AccessToken("foo:bar", Guid.NewGuid().ToString(), isUserAdmin), new Uri("http://localhost:9080")); var serverUri = new Uri("realm://localhost:9080/foobar"); return(Realm.GetInstance(new SyncConfiguration(user, serverUri))); }
public async void UserCurrent_WhenThereIsOneUser_ShouldReturnThatUser() { var user = await User.LoginAsync(Credentials.AccessToken("foo:bar", Guid.NewGuid().ToString(), true), new Uri("http://localhost:9080")); var currentUser = User.Current; Assert.That(currentUser, Is.EqualTo(user)); }
public async void UserAllLoggedIn_WhenThereIsOneUser_ShouldReturnThatUser() { var user = await User.LoginAsync(Credentials.AccessToken("foo:bar", Guid.NewGuid().ToString(), true), new Uri("http://localhost:9080")); var users = User.AllLoggedIn; Assert.That(users.Length, Is.EqualTo(1)); Assert.That(users[0], Is.EqualTo(user)); }
public async void UserAllLoggedIn_WhenThereAreNineUsers_ShouldReturnAllOfThem() { var users = new List <User>(); for (var i = 0; i < 9; i++) { users.Add(await User.LoginAsync(Credentials.AccessToken("foo:bar" + i, Guid.NewGuid().ToString(), true), new Uri("http://localhost:9080"))); } var current = User.AllLoggedIn; Assert.That(current, Is.EquivalentTo(users)); }
public void Realm_GetSession_WhenSyncedRealm() { AsyncContext.Run(async() => { var user = await User.LoginAsync(Credentials.AccessToken("foo:bar", Guid.NewGuid().ToString(), isAdmin: true), new Uri("http://localhost:9080")); var serverUri = new Uri("realm://localhost:9080/foobar"); using (var realm = Realm.GetInstance(new SyncConfiguration(user, serverUri))) { var session = realm.GetSession(); Assert.That(session.User, Is.EqualTo(user)); Assert.That(session.ServerUri, Is.EqualTo(serverUri)); } }); }
public void User_GetManagementRealm(string authScheme, string syncScheme) { AsyncContext.Run(async() => { const string UriPattern = "{0}://some.fake.server:12345"; var user = await User.LoginAsync(Credentials.AccessToken("foo:bar", Guid.NewGuid().ToString(), isAdmin: true), new Uri(string.Format(UriPattern, authScheme))); using (var realm = user.GetManagementRealm()) { var configuration = (SyncConfiguration)realm.Config; Assert.That(configuration.User, Is.EqualTo(user)); Assert.That(configuration.ServerUri.ToString(), Is.EqualTo(string.Format(UriPattern + "/~/__management", syncScheme))); } }); }
public void SyncConfiguration_WithEncryptionKey_DoesntThrow() { AsyncContext.Run(async() => { var user = await User.LoginAsync(Credentials.AccessToken("foo:bar", Guid.NewGuid().ToString(), isAdmin: true), new Uri("http://foobar")); var key = new byte[64]; for (var i = 0; i < key.Length; i++) { key[i] = (byte)i; } var config = new SyncConfiguration(user, new Uri("realm://foobar")) { EncryptionKey = key }; Assert.That(() => Realm.GetInstance(config), Throws.Nothing); }); }
public async void SyncConfiguration_WithoutPath() { var user = await User.LoginAsync(Credentials.AccessToken("foo:bar", Guid.NewGuid().ToString(), true), new Uri("http://localhost:9080")); var serverUri = new Uri("realm://localhost:9080/foobar"); var config = new SyncConfiguration(user, serverUri); Realm.DeleteRealm(config); var file = new FileInfo(config.DatabasePath); Assert.That(file.Exists, Is.False); using (var realm = Realm.GetInstance(config)) { } file = new FileInfo(config.DatabasePath); Assert.That(file.Exists); }
public async void SyncConfiguration_WithAbsolutePath() { var user = await User.LoginAsync(Credentials.AccessToken("foo:bar", Guid.NewGuid().ToString(), true), new Uri("http://localhost:9080")); var serverUri = new Uri("realm://localhost:9080/foobar"); var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "bla.realm"); var config = new SyncConfiguration(user, serverUri, path); Realm.DeleteRealm(config); var file = new FileInfo(config.DatabasePath); Assert.That(file.Exists, Is.False); using (var realm = Realm.GetInstance(config)) { } file = new FileInfo(config.DatabasePath); Assert.That(file.Exists); Assert.That(config.DatabasePath, Is.EqualTo(path)); }
public void Compact_ShouldReduceSize(bool encrypt, bool populate) { AsyncContext.Run(async() => { var user = await User.LoginAsync(Credentials.AccessToken("foo:bar", Guid.NewGuid().ToString(), isAdmin: false), new Uri("http://localhost:9080")); var serverUri = new Uri($"realm://localhost:9080/~/compactrealm_{encrypt}_{populate}.realm"); var config = new SyncConfiguration(user, serverUri); if (encrypt) { config.EncryptionKey = new byte[64]; config.EncryptionKey[0] = 5; } Realm.DeleteRealm(config); using (var realm = Realm.GetInstance(config)) { if (populate) { AddDummyData(realm, singleTransaction: false); } } var initialSize = new FileInfo(config.DatabasePath).Length; Assert.That(Realm.Compact(config)); var finalSize = new FileInfo(config.DatabasePath).Length; Assert.That(initialSize >= finalSize); using (var realm = Realm.GetInstance(config)) { Assert.That(realm.All <IntPrimaryKeyWithValueObject>().Count(), Is.EqualTo(populate ? 500 : 0)); } }); }