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