public void RemoteWorkerIsAbleToPerformNonBlockingMap() { var uri = new Uri("file:///ala.txt"); var mapFunc = new Uri("file:///makota.cs"); var mapLock = new object(); var uriProviderMock = GetSimpleUriProvider(); var storageMock = new Mock<IStorage>(MockBehavior.Strict); storageMock.Setup(s => s.GetFileName(It.IsAny<Uri>())).Returns(string.Empty); storageMock.Setup(s => s.Read(It.IsAny<Uri>())).Returns(string.Empty); var remoteWorkerServiceMock = new Mock<IRemoteWorkerService>(MockBehavior.Strict); remoteWorkerServiceMock.Setup(s => s.Init(It.IsAny<int>())); remoteWorkerServiceMock.Setup(s => s.Map(It.IsAny<Uri>(), It.IsAny<Uri>())).Callback(() => { lock (mapLock) { Monitor.Wait(mapLock); } }); remoteWorkerServiceMock.Setup(s => s.PushFile(It.IsAny<int>(), It.IsAny<string>(), It.IsAny<string>())) .Returns(new Uri("file:///a.txt")); MockerForRemoteWorkerService.Mock = remoteWorkerServiceMock.Object; RemoteWorker<MockerForRemoteWorkerService>.NonBlockingMapAndReduce = true; var worker = new RemoteWorker<MockerForRemoteWorkerService>() { Storage=storageMock.Object }; worker.Init(); worker.Map(uri, mapFunc); Thread.Sleep(10); lock (mapLock) { Monitor.Pulse(mapLock); } remoteWorkerServiceMock.VerifyAll(); }
public void RemoteMapWorks() { var fileName = new Uri(string.Format("file:///{0}", Base64.Encode("file1.txt"))); var fileContent = "whatever am i i"; var mapperCodeFileName = new Uri("file:///SampleMapper.cs"); this.storage.Store(fileName, fileContent); TestHelpers.LoadToStorage(@"..\..\..\NetReduce.Core.Tests\SampleMapper.cs", mapperCodeFileName, this.storage); IUriProvider uriProvider = new UriProvider(); uriProvider.Uris.Add(new Uri("http://*****:*****@"c:\temp\netreduce\0", false); var fileNo = workerStorage.ListFiles().Count(); fileNo.ShouldBe(6); }