Author: limpbizkit
Date: Fri Oct 17 10:49:49 2008
New Revision: 643

Modified:
     
trunk/extensions/privatemodules/test/com/google/inject/privatemodules/PrivateModuleTest.java

Log:
New test case as recommended by Mike Ward.
http://code.google.com/p/google-guice/source/detail?r=633


Modified:  
trunk/extensions/privatemodules/test/com/google/inject/privatemodules/PrivateModuleTest.java
==============================================================================
---  
trunk/extensions/privatemodules/test/com/google/inject/privatemodules/PrivateModuleTest.java
     
(original)
+++  
trunk/extensions/privatemodules/test/com/google/inject/privatemodules/PrivateModuleTest.java
     
Fri Oct 17 10:49:49 2008
@@ -25,6 +25,7 @@
  import com.google.inject.Key;
  import com.google.inject.Provider;
  import com.google.inject.Provides;
+import com.google.inject.ProvisionException;
  import com.google.inject.name.Named;
  import static com.google.inject.name.Names.named;
  import junit.framework.TestCase;
@@ -180,6 +181,42 @@
      });

      assertEquals("nested", injector.getInstance(String.class));
+  }
+
+  public void testNestedPrivateModulesWithSomeKeysUnexposed() {
+    Injector injector = Guice.createInjector(new PrivateModule() {
+      public void configurePrivateBindings() {
+        bind(String.class).annotatedWith(named("bound outer, exposed  
outer")).toInstance("boeo");
+        expose(String.class).annotatedWith(named("bound outer, exposed  
outer"));
+        bind(String.class).annotatedWith(named("bound outer, exposed  
none")).toInstance("boen");
+        expose(String.class).annotatedWith(named("bound inner, exposed  
both"));
+
+        install(new PrivateModule() {
+          public void configurePrivateBindings() {
+            bind(String.class).annotatedWith(named("bound inner, exposed  
both")).toInstance("bieb");
+            expose(String.class).annotatedWith(named("bound inner, exposed  
both"));
+            bind(String.class).annotatedWith(named("bound inner, exposed  
none")).toInstance("bien");
+          }
+        });
+      }
+    });
+
+    assertEquals("boeo", injector.getInstance(
+        Key.get(String.class, named("bound outer, exposed outer"))));
+    assertEquals("bieb", injector.getInstance(
+        Key.get(String.class, named("bound inner, exposed both"))));
+
+    try {
+      injector.getInstance(Key.get(String.class, named("bound outer,  
exposed none")));
+      fail();
+    } catch (ProvisionException expected) {
+    }
+
+    try {
+      injector.getInstance(Key.get(String.class, named("bound inner,  
exposed none")));
+      fail();
+    } catch (ProvisionException expected) {
+    }
    }

    public void testDependenciesBetweenPrivateAndPublic() {

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"google-guice-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-guice-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to