Exemplo n.º 1
0
        public void ShouldCorrectlyRemoveRelatedObject()
        {
            var keyMock2 = "B:1";

            var foreignKeyRelationshipProvider = new Mock <IKVForeignKeyRelationshipProvider>();

            foreignKeyRelationshipProvider.Setup(m => m.GetKeys(_key))
            .Returns(new Key[]
            {
                "B:1",
                "B:2"
            });

            var generatedRelationshipProvider = new Mock <IKVForeignKeyRelationshipProvider>();

            _schema.Setup(s => s.GetObjectSchema <TestObjA>()
                          .GetRelationshipFor <TestObjB>(_store.Object, _key))
            .Returns(new KeyWithRelationship(_key, foreignKeyRelationshipProvider.Object));

            _schema.Setup(m => m.GetObjectSchema <TestObjA>().BuildKeyRelationships(_store.Object, _key)).Returns(new[]
            {
                new KeyWithRelationship(keyMock2, generatedRelationshipProvider.Object)
            });

            var o1 = new KVRelationalObject <TestObjA>(_key, _schema.Object, _store.Object);

            //run
            o1.RemoveRelationship(new KVRelationalObject <TestObjB>(keyMock2, _schema.Object, _store.Object));


            generatedRelationshipProvider.Verify(m => m.Remove(keyMock2, _key));
            foreignKeyRelationshipProvider.Verify(s => s.Remove(_key, keyMock2));
        }
Exemplo n.º 2
0
        public void ShouldLoadRelatedObjectCorrectly()
        {
            var foreignKeyRelationshipProviderMock = new Mock <IKVForeignKeyRelationshipProvider>();

            foreignKeyRelationshipProviderMock.Setup(m => m.GetKeys(_key))
            .Returns(new Key[]
            {
                "B:1",
                "B:2"
            });

            _schema.Setup(s => s.GetObjectSchema <TestObjA>()
                          .GetRelationshipFor <TestObjB>(_store.Object, _key))
            .Returns(new KeyWithRelationship(_key, foreignKeyRelationshipProviderMock.Object));


            var o1 = new KVRelationalObject <TestObjA>(_key, _schema.Object, _store.Object);

            var items = o1.Get <TestObjB>().ToList();

            Assert.AreEqual(2, items.Count());

            Assert.IsTrue(items.First().Key.Value == "B:1");
            Assert.IsTrue(items.Last().Key.Value == "B:2");
        }