1cdcf09f422217a51b2fce91c78026af65a36aa30Cédric Beustpackage test.dataprovider;
2cdcf09f422217a51b2fce91c78026af65a36aa30Cédric Beust
39270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herrimport com.google.inject.AbstractModule;
49270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herrimport com.google.inject.name.Names;
59270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herr
6cdcf09f422217a51b2fce91c78026af65a36aa30Cédric Beustimport org.testng.Assert;
79270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herrimport org.testng.annotations.Guice;
8cdcf09f422217a51b2fce91c78026af65a36aa30Cédric Beustimport org.testng.annotations.Test;
9cdcf09f422217a51b2fce91c78026af65a36aa30Cédric Beust
109270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herr@Guice(modules = StaticDataProviderSampleTest.InjectionProviderModule.class)
11cdcf09f422217a51b2fce91c78026af65a36aa30Cédric Beustpublic class StaticDataProviderSampleTest {
12cdcf09f422217a51b2fce91c78026af65a36aa30Cédric Beust
13cdcf09f422217a51b2fce91c78026af65a36aa30Cédric Beust  @Test(dataProvider = "static", dataProviderClass = StaticProvider.class)
14cdcf09f422217a51b2fce91c78026af65a36aa30Cédric Beust  public void verifyStatic(String s) {
15cdcf09f422217a51b2fce91c78026af65a36aa30Cédric Beust    Assert.assertEquals(s, "Cedric");
16cdcf09f422217a51b2fce91c78026af65a36aa30Cédric Beust  }
17ef0abc561a1298e449b4c90999b46b5cf031deafJulien Herr
18ef0abc561a1298e449b4c90999b46b5cf031deafJulien Herr  @Test(dataProvider = "external", dataProviderClass = NonStaticProvider.class)
19ef0abc561a1298e449b4c90999b46b5cf031deafJulien Herr  public void verifyExternal(String s) {
20ef0abc561a1298e449b4c90999b46b5cf031deafJulien Herr    Assert.assertEquals(s, "Cedric");
21ef0abc561a1298e449b4c90999b46b5cf031deafJulien Herr  }
229270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herr
235816aa6e67aa9ae07024c7cbf99f6ea845e59990Julien Herr  @Test(dataProvider = "injection", dataProviderClass = FieldInjectionProvider.class)
245816aa6e67aa9ae07024c7cbf99f6ea845e59990Julien Herr  public void verifyFieldInjection(String s) {
255816aa6e67aa9ae07024c7cbf99f6ea845e59990Julien Herr    Assert.assertEquals(s, "Cedric");
265816aa6e67aa9ae07024c7cbf99f6ea845e59990Julien Herr  }
275816aa6e67aa9ae07024c7cbf99f6ea845e59990Julien Herr
285816aa6e67aa9ae07024c7cbf99f6ea845e59990Julien Herr  @Test(dataProvider = "injection", dataProviderClass = ConstructorInjectionProvider.class)
295816aa6e67aa9ae07024c7cbf99f6ea845e59990Julien Herr  public void verifyConstructorInjection(String s) {
309270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herr    Assert.assertEquals(s, "Cedric");
319270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herr  }
329270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herr
339270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herr  public static class InjectionProviderModule extends AbstractModule {
349270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herr
359270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herr    @Override
369270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herr    protected void configure() {
379270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herr      bind(String.class).annotatedWith(Names.named("test")).toInstance("Cedric");
389270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herr    }
399270c7a2b3898b4cb6048a69fc958530ab2fd825Julien Herr  }
40cdcf09f422217a51b2fce91c78026af65a36aa30Cédric Beust}
41