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)); }
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); }
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); }
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]); }
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); }