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>());
        }
Пример #2
0
        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));
        }
Пример #6
0
 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));
         }
     });
 }
Пример #7
0
        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)));
                }
            });
        }
Пример #8
0
        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);
            });
        }
Пример #9
0
        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);
        }
Пример #10
0
        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));
        }
Пример #11
0
        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));
                }
            });
        }