Ejemplo n.º 1
0
        internal void GetObjectNotPresent()
        {
            var storage = new LocalObjectStorage(config, node);

            var user = new User();
            user.ObjectId = KademliaId.RandomId;
            user.Add(new UserFile { ChunkList = new List<byte[]> { KademliaId.RandomId } });

            storage.StoreObject(user, false);

            Assert.IsNull(storage.GetObject(KademliaId.RandomId));
        }
Ejemplo n.º 2
0
        internal void GetObject()
        {
            var storage = new LocalObjectStorage(config, node);

            var randomId = KademliaId.RandomId;
            ulong fileId = 123456789;
            var id = KademliaId.RandomId;

            var user = new User();
            user.ObjectId = id;
            user.Add(new UserFile { FileId = fileId, ChunkList = new List<byte[]> { randomId } });

            storage.StoreObject(user, false);

            var readUser = storage.GetObject(id) as User;
            Assert.AreEqual(1, readUser.Files.Count);
            Assert.AreEqual(0, readUser.DeletedFiles.Count);

            var userFile = readUser.Files[0];
            Assert.AreEqual(1, userFile.ChunkList.Count);
            Assert.AreEqual(randomId, (KademliaId)userFile.ChunkList[0]);
            Assert.AreEqual(fileId, userFile.FileId);
        }
Ejemplo n.º 3
0
        internal void Test()
        {
            var objectId = KademliaId.RandomId;
            var chunkId = KademliaId.RandomId;

            var user = new User();
            user.ObjectId = objectId;
            var userFile = new UserFile();
            userFile.ChunkList.Add(chunkId);
            user.Add(userFile);

            var ms = new MemoryStream();
            Serializer.Serialize(ms, user);
            var bytes = ms.ToArray();

            // store the object

            var ct1 = new CallbackTimeout<Error>();
            nodeA.StoreObject(nodeBInfo, objectId, bytes, ct1.Done);
            if (!ct1.Block(TestParameters.LocalhostCommunicationTimeout))
            {
                Assert.Fail("No response within timeout");
            }
            Assert.AreEqual(Error.Success, ct1.Result);

            // now retrieve it

            var ct2 = new CallbackTimeout<Error, byte[]>();
            nodeC.GetObjectFromNode(new List<NodeInformation>{nodeBInfo}, objectId, ct2.Done);
            if (!ct2.Block(TestParameters.LocalhostCommunicationTimeout))
            {
                Assert.Fail("No response within timeout");
            }
            Assert.AreEqual(Error.Success, ct2.Result1);
            Assert.AreElementsEqual(bytes, ct2.Result2);
        }
Ejemplo n.º 4
0
        internal void Initialization()
        {
            var storage = new LocalObjectStorage(config, node);

            var user = new User();
            user.ObjectId = KademliaId.RandomId;
            user.Add(new UserFile {ChunkList = new List<byte[]> {KademliaId.RandomId}});
            storage.StoreObject(user, false);

            storage = new LocalObjectStorage(config, node);

            Assert.AreEqual(1, storage.CurrentObjects.Count);
            Assert.AreEqual(user.ObjectId, storage.CurrentObjects[0]);
        }
Ejemplo n.º 5
0
        private void StoreTestObject()
        {
            // create the test object

            objectId = KademliaId.RandomId;
            var chunkId = KademliaId.RandomId;

            var user = new User();
            user.ObjectId = objectId;
            var userFile = new UserFile();
            userFile.ChunkList.Add(chunkId);
            user.Add(userFile);

            var ms = new MemoryStream();
            Serializer.Serialize(ms, user);
            bytes = ms.ToArray();

            // store it

            var ct = new CallbackTimeout<Error>();
            var ni = new NodeInformation(new IPEndPoint(IPAddress.Loopback, nodes[1].Port), nodes[1].Id);
            nodes[0].StoreObject(ni, objectId, bytes, ct.Done);
            if (!ct.Block(TestParameters.LocalhostCommunicationTimeout))
            {
                Assert.Fail("No response within timeout");
            }
            Assert.AreEqual(Error.Success, ct.Result);
        }