public void Set_WhenObjectIsManaged_ShouldWork() { var container = new ContainerObject(); var objectToSet = new IntPropertyObject { Int = 42 }; _realm.Write(() => { _realm.Add(container); container.Items.Add(new IntPropertyObject { Int = -1 }); _realm.Add(objectToSet); }); _realm.Write(() => container.Items[0] = objectToSet); Assert.That(container.Items.Count, Is.EqualTo(1)); Assert.That(container.Items[0], Is.EqualTo(objectToSet)); Assert.That(container.Items[0].Int, Is.EqualTo(42)); }
private ThreadSafeReference.Object<IntPropertyObject> SetupObjectReference() { var obj = new IntPropertyObject { Int = 12 }; _realm.Write(() => _realm.Add(obj)); return ThreadSafeReference.Create(obj); }
public void ThreadSafeReference_WhenObjectIsDeleted_ShouldFail() { var obj = new IntPropertyObject(); _realm.Write(() => _realm.Add(obj)); _realm.Write(() => _realm.Remove(obj)); Assert.That(() => ThreadSafeReference.Create(obj), Throws.InstanceOf<RealmException>().And.Message.Contains("invalidated object")); }
public void Insert_WhenIndexIsEqualToCount_ShouldWork() { var container = new ContainerObject(); _realm.Write(() => _realm.Add(container)); var toInsert1 = new IntPropertyObject(); _realm.Write(() => container.Items.Insert(0, toInsert1)); Assert.That(container.Items.Count, Is.EqualTo(1)); Assert.That(container.Items[0], Is.EqualTo(toInsert1)); var toInsert2 = new IntPropertyObject(); _realm.Write(() => container.Items.Insert(1, toInsert2)); Assert.That(container.Items.Count, Is.EqualTo(2)); Assert.That(container.Items[1], Is.EqualTo(toInsert2)); }
public void ObjectReference_ResolveDeletedObject_ShouldReturnNull() { AsyncContext.Run(async () => { var obj = new IntPropertyObject { Int = 12 }; _realm.Write(() => _realm.Add(obj)); var objReference = ThreadSafeReference.Create(obj); _realm.Write(() => _realm.Remove(obj)); await Task.Run(() => { using (var otherRealm = Realm.GetInstance(_realm.Config)) { var otherObj = otherRealm.ResolveReference(objReference); Assert.That(otherObj, Is.Null); } }); }); }
public void ThreadSafeReference_WhenAnObjectIsUnmanaged_ShouldFail() { var obj = new IntPropertyObject(); Assert.That(() => ThreadSafeReference.Create(obj), Throws.InstanceOf<RealmException>().And.Message.Contains("unmanaged object")); }
public void SmokeTest() { SyncTestHelpers.RunRosTestAsync(async() => { var(realm, userId) = await CreateRandomRealmAsync("modifications"); var changeDetails = new List <IChangeDetails>(); var handler = new ProxyingHandler(path => path == $"/{userId}/modifications", details => { changeDetails.Add(details); return(Task.CompletedTask); }); var config = await GetConfiguration(handler); using (var notifier = await Notifier.StartAsync(config)) using (realm) { var obj = new IntPropertyObject { Int = 3 }; realm.Write(() => realm.Add(obj)); var containsInsertion = await EnsureChangesAsync <IntPropertyObject>(changeDetails, 1, change => { return(change.Insertions.Length == 1 && change.Deletions.Length == 0 && change.Modifications.Length == 0 && change.Insertions[0].CurrentIndex == 0 && change.Insertions[0].PreviousIndex == -1); }); Assert.True(containsInsertion); realm.Write(() => obj.Int = 4); var containsModification = await EnsureChangesAsync <IntPropertyObject>(changeDetails, 2, change => { return(change.Insertions.Length == 0 && change.Deletions.Length == 0 && change.Modifications.Length == 1 && change.Modifications[0].CurrentIndex == 0 && change.Modifications[0].PreviousIndex == 0); }); Assert.True(containsModification); realm.Write(() => realm.Remove(obj)); var containsDeletion = await EnsureChangesAsync <IntPropertyObject>(changeDetails, 3, change => { return(change.Insertions.Length == 0 && change.Deletions.Length == 1 && change.Modifications.Length == 0 && change.Deletions[0].CurrentIndex == -1 && change.Deletions[0].PreviousIndex == 0); }); Assert.True(containsDeletion); } }, timeout: 1000000); }