Example #1
0
        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();
        }
Example #2
0
        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);
        }