public virtual void TestGetActualPath()
        {
            Configuration conf = new Configuration();

            conf.SetBoolean(YarnConfiguration.SharedCacheEnabled, true);
            LocalResource resource = Org.Mockito.Mockito.Mock <LocalResource>();

            // give public visibility
            Org.Mockito.Mockito.When(resource.GetVisibility()).ThenReturn(LocalResourceVisibility
                                                                          .Public);
            Path   localPath = new Path("foo.jar");
            string user      = "******";
            SCMUploaderProtocol scmClient = Org.Mockito.Mockito.Mock <SCMUploaderProtocol>();
            FileSystem          fs        = Org.Mockito.Mockito.Mock <FileSystem>();
            FileSystem          localFs   = Org.Mockito.Mockito.Mock <FileSystem>();
            // stub it to return a status that indicates a directory
            FileStatus status = Org.Mockito.Mockito.Mock <FileStatus>();

            Org.Mockito.Mockito.When(status.IsDirectory()).ThenReturn(true);
            Org.Mockito.Mockito.When(localFs.GetFileStatus(localPath)).ThenReturn(status);
            SharedCacheUploader spied = CreateSpiedUploader(resource, localPath, user, conf,
                                                            scmClient, fs, localFs);
            Path actualPath = spied.GetActualPath();

            NUnit.Framework.Assert.AreEqual(actualPath.GetName(), localPath.GetName());
            NUnit.Framework.Assert.AreEqual(actualPath.GetParent().GetName(), localPath.GetName
                                                ());
        }
        public virtual void TestFailVerifyAccess()
        {
            SharedCacheUploader spied = CreateSpiedUploader();

            Org.Mockito.Mockito.DoReturn(false).When(spied).VerifyAccess();
            NUnit.Framework.Assert.IsFalse(spied.Call());
        }
        /// <exception cref="System.IO.IOException"/>
        private SharedCacheUploader CreateSpiedUploader(LocalResource resource, Path localPath
                                                        , string user, Configuration conf, SCMUploaderProtocol scmClient, FileSystem fs,
                                                        FileSystem localFs)
        {
            SharedCacheUploader uploader = new SharedCacheUploader(resource, localPath, user,
                                                                   conf, scmClient, fs, localFs);

            return(Org.Mockito.Mockito.Spy(uploader));
        }
 public virtual void Handle(SharedCacheUploadEvent @event)
 {
     if (enabled)
     {
         IDictionary <LocalResourceRequest, Path> resources = @event.GetResources();
         foreach (KeyValuePair <LocalResourceRequest, Path> e in resources)
         {
             SharedCacheUploader uploader = new SharedCacheUploader(e.Key, e.Value, @event.GetUser
                                                                        (), GetConfig(), scmClient, fs, localFs);
             // fire off an upload task
             uploaderPool.Submit(uploader);
         }
     }
 }
        public virtual void TestSuccess()
        {
            Configuration conf = new Configuration();

            conf.SetBoolean(YarnConfiguration.SharedCacheEnabled, true);
            LocalResource resource  = Org.Mockito.Mockito.Mock <LocalResource>();
            Path          localPath = Org.Mockito.Mockito.Mock <Path>();

            Org.Mockito.Mockito.When(localPath.GetName()).ThenReturn("foo.jar");
            string user = "******";
            SCMUploaderProtocol       scmClient = Org.Mockito.Mockito.Mock <SCMUploaderProtocol>();
            SCMUploaderNotifyResponse response  = Org.Mockito.Mockito.Mock <SCMUploaderNotifyResponse
                                                                            >();

            Org.Mockito.Mockito.When(response.GetAccepted()).ThenReturn(true);
            Org.Mockito.Mockito.When(scmClient.Notify(Matchers.IsA <SCMUploaderNotifyRequest>(
                                                          ))).ThenReturn(response);
            FileSystem fs = Org.Mockito.Mockito.Mock <FileSystem>();

            // return false when rename is called
            Org.Mockito.Mockito.When(fs.Rename(Matchers.IsA <Path>(), Matchers.IsA <Path>())).ThenReturn
                (true);
            FileSystem          localFs = FileSystem.GetLocal(conf);
            SharedCacheUploader spied   = CreateSpiedUploader(resource, localPath, user, conf,
                                                              scmClient, fs, localFs);

            // stub verifyAccess() to return true
            Org.Mockito.Mockito.DoReturn(true).When(spied).VerifyAccess();
            // stub getActualPath()
            Org.Mockito.Mockito.DoReturn(localPath).When(spied).GetActualPath();
            // stub computeChecksum()
            Org.Mockito.Mockito.DoReturn("abcdef0123456789").When(spied).ComputeChecksum(Matchers.IsA
                                                                                         <Path>());
            // stub uploadFile() to return true
            Org.Mockito.Mockito.DoReturn(true).When(spied).UploadFile(Matchers.IsA <Path>(), Matchers.IsA
                                                                      <Path>());
            // stub notifySharedCacheManager to return true
            Org.Mockito.Mockito.DoReturn(true).When(spied).NotifySharedCacheManager(Matchers.IsA
                                                                                    <string>(), Matchers.IsA <string>());
            NUnit.Framework.Assert.IsTrue(spied.Call());
        }
        public virtual void TestVerifyAccessPublicResource()
        {
            Configuration conf = new Configuration();

            conf.SetBoolean(YarnConfiguration.SharedCacheEnabled, true);
            LocalResource resource = Org.Mockito.Mockito.Mock <LocalResource>();

            // give public visibility
            Org.Mockito.Mockito.When(resource.GetVisibility()).ThenReturn(LocalResourceVisibility
                                                                          .Public);
            Path localPath = Org.Mockito.Mockito.Mock <Path>();

            Org.Mockito.Mockito.When(localPath.GetName()).ThenReturn("foo.jar");
            string user = "******";
            SCMUploaderProtocol scmClient = Org.Mockito.Mockito.Mock <SCMUploaderProtocol>();
            FileSystem          fs        = Org.Mockito.Mockito.Mock <FileSystem>();
            FileSystem          localFs   = FileSystem.GetLocal(conf);
            SharedCacheUploader spied     = CreateSpiedUploader(resource, localPath, user, conf,
                                                                scmClient, fs, localFs);

            NUnit.Framework.Assert.IsTrue(spied.VerifyAccess());
        }