Exemple #1
0
        public void AddBlock_Always_PerformsAddBlockRequestAndReturnsLocatedBlock()
        {
            // Arrange
            var restResponse = new RestResponse <LocatedBlock>();

            restResponse.StatusCode = HttpStatusCode.OK;
            var locatedBlock = new LocatedBlock();

            restResponse.Content = JsonConvert.SerializeObject(locatedBlock);

            var restRequest = new RestRequest("/ClientProtocol/AddBlock", Method.POST);

            restRequest.AddParameter(srcFile, testSrcFile);
            _mockRestClient.Setup(x => x.Execute <LocatedBlock>(It.IsAny <RestRequest>())).Returns(restResponse);
            var sut = new ClientProtocol(_mockRestClient.Object);

            // Act
            var result = sut.AddBlock(testSrcFile);

            // Assert
            _mockRestClient.Verify(x => x.Execute <LocatedBlock>(It.Is <RestRequest>(r => VerifyRestRequest(restRequest, r))));
            Assert.AreEqual(result.Block, locatedBlock.Block);
            Assert.AreEqual(result.Locations, locatedBlock.Locations);
        }
Exemple #2
0
        public void AddBlock_ValidFile_AllocatesBlockAndReturnsLocatedBlock()
        {
            var stubFileSystem = new Mock <IFileSystem>();
            var file           = new File();

            stubFileSystem.Setup(x => x.GetFile(It.IsAny <string>())).Returns(file);

            var stubDataNodeRepository = new Mock <IDataNodeRepository>();
            var dataNodeId             = Guid.NewGuid();

            stubDataNodeRepository.Setup(x => x.GetRandomDataNodeId()).Returns(dataNodeId);
            var dataNodeID = new DataNodeId()
            {
                HostName = "HostName", IPAddress = "IPAddress"
            };

            stubDataNodeRepository.Setup(x => x.GetDataNodeDescriptorById(dataNodeId)).Returns(dataNodeID);

            var clientProtocol = new ClientProtocol(stubFileSystem.Object, stubDataNodeRepository.Object);

            var result = clientProtocol.AddBlock("testFile");

            Assert.That(result.Locations, Has.Exactly(1).Matches <DataNodeId>(x => x.HostName == dataNodeID.HostName && x.IPAddress == dataNodeID.IPAddress));
        }