public void testSetCoercion() {
    Serializable s = compileSetExpression("name");

    Foo foo = new Foo();
    executeSetExpression(s, foo, 12);
    assertEquals("12", foo.getName());

    foo = new Foo();
    setProperty(foo, "name", 12);
    assertEquals("12", foo.getName());
  }
  @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();
  }
Exemple #3
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 test() throws Throwable {

    Method fooMethod = Foo.class.getDeclaredMethod("getName");

    ResolvedJavaMethod foo1 = metaAccess.lookupJavaMethod(fooMethod);
    ResolvedJavaMethod foo2 = metaAccess.lookupJavaMethod(fooMethod);

    String foo1Code = Arrays.toString(foo1.getCode());
    String foo2Code = Arrays.toString(foo2.getCode());

    Assert.assertEquals("foo", Foo.getName());

    redefineFoo();
    System.gc();

    // Make sure the transformation happened
    Assert.assertEquals("bar", Foo.getName());

    Assert.assertEquals(foo1Code, Arrays.toString(foo1.getCode()));
    Assert.assertEquals(foo2Code, Arrays.toString(foo1.getCode()));
  }