@Test
  public void test() {

    // Bootstrap container 1
    SwitchableSingletonProvider.use(1);

    TestContainer container1 = new TestContainer(Foo.class);
    container1.startContainer();
    container1.ensureRequestActive();

    BeanManagerImpl beanManager1 = getBeanManager(container1);
    Bean<?> fooBean1 = beanManager1.resolve(beanManager1.getBeans(Foo.class));
    Foo foo1 =
        (Foo)
            beanManager1.getReference(
                fooBean1, Foo.class, beanManager1.createCreationalContext(fooBean1));
    foo1.setName("container 1");

    // Bootstrap container 2
    SwitchableSingletonProvider.use(2);

    TestContainer container2 = new TestContainer(Foo.class);
    container2.startContainer();
    container2.ensureRequestActive();

    BeanManagerImpl beanManager2 = getBeanManager(container2);
    Bean<?> fooBean2 = beanManager2.resolve(beanManager2.getBeans(Foo.class));
    Foo foo2 =
        (Foo)
            beanManager2.getReference(
                fooBean2, Foo.class, beanManager2.createCreationalContext(fooBean2));
    foo2.setName("container 2");

    // Switch to container 1 and check value
    SwitchableSingletonProvider.use(1);
    foo1 =
        (Foo)
            beanManager1.getReference(
                fooBean1, Foo.class, beanManager1.createCreationalContext(fooBean1));
    assert foo1.getName().equals("container 1");

    // Switch to container 2 and check value
    SwitchableSingletonProvider.use(2);
    foo2 =
        (Foo)
            beanManager2.getReference(
                fooBean2, Foo.class, beanManager2.createCreationalContext(fooBean2));
    assert foo2.getName().equals("container 2");
    SwitchableSingletonProvider.use(1);
    container1.stopContainer();
    SwitchableSingletonProvider.use(2);
    container2.stopContainer();
    SingletonProvider.reset();
  }
Beispiel #2
0
  @Test(
      description =
          "A simple test to check session replication, doesn't carefully check if a bean ids are correct")
  public void testSimpleSessionReplication() throws Exception {

    TestContainer container1 = bootstrapContainer(1, Collections.singletonList(Foo.class));
    BeanManagerImpl beanManager1 = getBeanManager(container1);
    Bean<?> fooBean1 = beanManager1.resolve(beanManager1.getBeans(Foo.class));

    TestContainer container2 = bootstrapContainer(2, Collections.singletonList(Foo.class));
    BeanManagerImpl beanManager2 = getBeanManager(container2);
    Bean<?> fooBean2 = beanManager2.resolve(beanManager2.getBeans(Foo.class));

    use(1);
    // Set a value into Foo1
    Foo foo1 =
        (Foo)
            beanManager1.getReference(
                fooBean1, Foo.class, beanManager1.createCreationalContext(fooBean1));
    foo1.setName("container 1");

    replicateSession(1, container1, 2, container2);

    use(2);
    Foo foo2 =
        (Foo)
            beanManager2.getReference(
                fooBean2, Foo.class, beanManager2.createCreationalContext(fooBean2));
    assert foo2.getName().equals("container 1");
    use(2);
    container2.stopContainer();
    use(1);
    container1.stopContainer();
  }
  @Test
  public void update_foo_success() {
    Response res = client.create(new Foo("Tom"));
    Foo foo1 = client.getDocument(res.getId(), Foo.class);
    foo1.setName("Jerry");

    Response updateRes = client.update(res.getId(), foo1);
    Assert.assertEquals(res.getId(), updateRes.getId());
    Assert.assertThat(updateRes.getRev(), startsWith("2-"));

    Foo foo2 = client.getDocument(res.getId(), Foo.class);
    Assert.assertEquals("Jerry", foo2.getName());
  }
  @Test
  public void getDocument_idRevForFoo_success() {
    Response res = client.create(new Foo("Tom"));
    Assert.assertThat(res.getRev(), startsWith("1-"));

    Foo foo = client.getDocument(res.getId(), Foo.class);
    foo.setName("Jerry");
    Response res2 = client.create(foo);
    Assert.assertThat(res2.getRev(), startsWith("2-"));

    {
      Foo fooVersion2 = client.getDocument(res2.getId(), Foo.class);
      Assert.assertNotNull(fooVersion2);
      Assert.assertEquals(res2.getId(), fooVersion2.getId());
      Assert.assertEquals(res2.getRev(), fooVersion2.getRevision());
    }

    {
      Foo fooVersion1 = client.getDocument(res.getId(), res.getRev(), Foo.class);
      Assert.assertNotNull(fooVersion1);
      Assert.assertThat(fooVersion1.getRevision(), startsWith("1-"));
    }
  }