Lines 61-66
Link Here
|
61 |
import junit.framework.AssertionFailedError; |
61 |
import junit.framework.AssertionFailedError; |
62 |
import org.netbeans.junit.MockServices; |
62 |
import org.netbeans.junit.MockServices; |
63 |
import org.netbeans.junit.NbTestCase; |
63 |
import org.netbeans.junit.NbTestCase; |
|
|
64 |
import org.netbeans.modules.masterfs.ProvidedExtensionsAccessor; |
64 |
import org.netbeans.modules.masterfs.filebasedfs.FileBasedFileSystem; |
65 |
import org.netbeans.modules.masterfs.filebasedfs.FileBasedFileSystem; |
65 |
import org.netbeans.modules.masterfs.filebasedfs.naming.NamingFactory; |
66 |
import org.netbeans.modules.masterfs.filebasedfs.naming.NamingFactory; |
66 |
import org.netbeans.modules.masterfs.filebasedfs.utils.FileInfo; |
67 |
import org.netbeans.modules.masterfs.filebasedfs.utils.FileInfo; |
Lines 83-91
Link Here
|
83 |
*/ |
84 |
*/ |
84 |
public class ProvidedExtensionsTest extends NbTestCase { |
85 |
public class ProvidedExtensionsTest extends NbTestCase { |
85 |
private ProvidedExtensionsImpl iListener; |
86 |
private ProvidedExtensionsImpl iListener; |
|
|
87 |
private ProvidedExtensionsImpl iListenerNoCanWrite; |
86 |
|
88 |
|
87 |
static { |
89 |
static { |
88 |
MockServices.setServices(AnnotationProviderImpl.class); |
90 |
MockServices.setServices(AnnotationProviderImpl.class, AnnotationProviderImplNoCanWrite.class); |
89 |
} |
91 |
} |
90 |
|
92 |
|
91 |
@Override |
93 |
@Override |
Lines 94-115
Link Here
|
94 |
AnnotationProvider provider = (AnnotationProvider)Lookups.metaInfServices( |
96 |
AnnotationProvider provider = (AnnotationProvider)Lookups.metaInfServices( |
95 |
Thread.currentThread().getContextClassLoader()).lookup(AnnotationProvider.class); |
97 |
Thread.currentThread().getContextClassLoader()).lookup(AnnotationProvider.class); |
96 |
assertNotNull(provider); |
98 |
assertNotNull(provider); |
97 |
iListener = lookupImpl(); |
99 |
iListener = lookupImpl(true); |
98 |
assertNotNull(iListener); |
100 |
assertNotNull(iListener); |
|
|
101 |
iListenerNoCanWrite = lookupImpl(false); |
102 |
assertNotNull(iListenerNoCanWrite); |
99 |
clearWorkDir(); |
103 |
clearWorkDir(); |
100 |
} |
104 |
} |
101 |
|
105 |
|
102 |
private ProvidedExtensionsImpl lookupImpl() { |
106 |
private ProvidedExtensionsImpl lookupImpl(boolean providesCanWrite) { |
103 |
Lookup.Result result = Lookups.metaInfServices(Thread.currentThread().getContextClassLoader()). |
107 |
Lookup.Result result = Lookups.metaInfServices(Thread.currentThread().getContextClassLoader()). |
104 |
lookup(new Lookup.Template(AnnotationProvider.class)); |
108 |
lookup(new Lookup.Template(AnnotationProvider.class)); |
105 |
Collection all = result.allInstances(); |
109 |
Collection all = result.allInstances(); |
106 |
for (Iterator it = all.iterator(); it.hasNext();) { |
110 |
for (Iterator it = all.iterator(); it.hasNext();) { |
107 |
AnnotationProvider ap = (AnnotationProvider) it.next(); |
111 |
AnnotationProvider ap = (AnnotationProvider) it.next(); |
108 |
InterceptionListener iil = ap.getInterceptionListener(); |
112 |
InterceptionListener iil = ap.getInterceptionListener(); |
109 |
if (iil instanceof ProvidedExtensions) { |
113 |
if (iil instanceof ProvidedExtensionsImpl) { |
|
|
114 |
ProvidedExtensionsImpl extension = (ProvidedExtensionsImpl)iil; |
115 |
if(ProvidedExtensionsAccessor.IMPL.providesCanWrite(extension) == providesCanWrite) { |
110 |
return (ProvidedExtensionsImpl)iil; |
116 |
return (ProvidedExtensionsImpl)iil; |
111 |
} |
117 |
} |
112 |
} |
118 |
} |
|
|
119 |
} |
113 |
return null; |
120 |
return null; |
114 |
} |
121 |
} |
115 |
|
122 |
|
Lines 154-164
Link Here
|
154 |
FileObject fo = FileUtil.toFileObject(getWorkDir()); |
161 |
FileObject fo = FileUtil.toFileObject(getWorkDir()); |
155 |
assertNotNull(fo); |
162 |
assertNotNull(fo); |
156 |
assertNotNull(iListener); |
163 |
assertNotNull(iListener); |
|
|
164 |
assertNotNull(iListenerNoCanWrite); |
157 |
int nCalls = iListener.implsCanWriteCalls; |
165 |
int nCalls = iListener.implsCanWriteCalls; |
158 |
FileObject toChange = fo.createData("cw"); |
166 |
FileObject toChange = fo.createData("cw"); |
159 |
assertNotNull(toChange); |
167 |
assertNotNull(toChange); |
160 |
boolean cw = toChange.canWrite(); |
168 |
boolean cw = toChange.canWrite(); |
161 |
assertEquals(nCalls + 1, iListener.implsCanWriteCalls); |
169 |
assertEquals(nCalls + 1, iListener.implsCanWriteCalls); |
|
|
170 |
assertEquals(0, iListenerNoCanWrite.implsCanWriteCalls); |
162 |
} |
171 |
} |
163 |
|
172 |
|
164 |
public void testImplsMove() throws IOException { |
173 |
public void testImplsMove() throws IOException { |
Lines 570-577
Link Here
|
570 |
} |
579 |
} |
571 |
|
580 |
|
572 |
|
581 |
|
|
|
582 |
public static class AnnotationProviderImplNoCanWrite extends InterceptionListenerTest.AnnotationProviderImpl { |
583 |
private ProvidedExtensionsImpl impl = new ProvidedExtensionsImpl(this, false); |
584 |
public InterceptionListener getInterceptionListener() { |
585 |
return impl; |
586 |
} |
587 |
} |
588 |
|
573 |
public static class AnnotationProviderImpl extends InterceptionListenerTest.AnnotationProviderImpl { |
589 |
public static class AnnotationProviderImpl extends InterceptionListenerTest.AnnotationProviderImpl { |
574 |
private ProvidedExtensionsImpl impl = new ProvidedExtensionsImpl(this); |
590 |
private ProvidedExtensionsImpl impl = new ProvidedExtensionsImpl(this, true); |
575 |
public InterceptionListener getInterceptionListener() { |
591 |
public InterceptionListener getInterceptionListener() { |
576 |
return impl; |
592 |
return impl; |
577 |
} |
593 |
} |
Lines 608-620
Link Here
|
608 |
private static int cnt; |
624 |
private static int cnt; |
609 |
|
625 |
|
610 |
public static FileLock lock; |
626 |
public static FileLock lock; |
611 |
private final AnnotationProviderImpl provider; |
627 |
private final AnnotationProvider provider; |
612 |
|
628 |
|
613 |
public ProvidedExtensionsImpl() { |
629 |
public ProvidedExtensionsImpl() { |
614 |
this(null); |
630 |
this(null, false); |
615 |
} |
631 |
} |
616 |
|
632 |
|
617 |
public ProvidedExtensionsImpl(AnnotationProviderImpl p) { |
633 |
public ProvidedExtensionsImpl(AnnotationProvider p, boolean provideCanWrite) { |
|
|
634 |
super(provideCanWrite); |
618 |
this.provider = p; |
635 |
this.provider = p; |
619 |
cnt++; |
636 |
cnt++; |
620 |
} |
637 |
} |