Esempio n. 1
0
void statically()
{
   std::cout << "statically" << std::endl;
   
   // Create a c++ proxy on an java Allocation object instance
   Allocation A;
   // Create another c++ proxy on the same java Allocation object instance
   Allocation Acopy(A);
   // Create another c++ proxy on the same java Allocation object instance
   Allocation Acopy2(A.getJavaObject());
   // Create a c++ proxy on another java Allocation object instance
   Allocation Aclone = A.clone();
   
   std::cout << "Allocation: ";
   assertThat(A.getValue()).isEqualTo(-1);
   assertThat(Acopy.getValue()).isEqualTo(-1);
   assertThat(Acopy2.getValue()).isEqualTo(-1);
   assertThat(Aclone.getValue()).isEqualTo(-1);
   std::cout << "ok" << std::endl;
   
   A.setValue(2);
   std::cout << "A.setValue(2): ";
   assertThat(A.getValue()).isEqualTo(2);
   assertThat(Acopy.getValue()).isEqualTo(2);
   assertThat(Acopy2.getValue()).isEqualTo(2);
   assertThat(Aclone.getValue()).isEqualTo(-1);
   std::cout << "ok" << std::endl;

   Aclone.setValue(3);
   std::cout << "Aclone.setValue(3): ";
   assertThat(A.getValue()).isEqualTo(2);
   assertThat(Acopy.getValue()).isEqualTo(2);
   assertThat(Acopy2.getValue()).isEqualTo(2);
   assertThat(Aclone.getValue()).isEqualTo(3);
   std::cout << "ok" << std::endl;

   Acopy.setValue(4);
   std::cout << "Acopy.setValue(4): ";
   assertThat(A.getValue()).isEqualTo(4);
   assertThat(Acopy.getValue()).isEqualTo(4);
   assertThat(Acopy2.getValue()).isEqualTo(4);
   assertThat(Aclone.getValue()).isEqualTo(3);
   std::cout << "ok" << std::endl;
}
Esempio n. 2
0
void dynamically()
{
   std::cout << "dynamically" << std::endl;

   Allocation* A = new Allocation();
   Allocation* Acopy = new Allocation(*A);
   Allocation* Aclone = new Allocation(A->clone());
   
   std::cout << "Allocation: ";
   assertThat(A->getValue()).isEqualTo(-1);
   assertThat(Acopy->getValue()).isEqualTo(-1);
   assertThat(Aclone->getValue()).isEqualTo(-1);
   std::cout << "ok" << std::endl;

   A->setValue(2);
   std::cout << "A->setValue(2): ";
   assertThat(A->getValue()).isEqualTo(2);
   assertThat(Acopy->getValue()).isEqualTo(2);
   assertThat(Aclone->getValue()).isEqualTo(-1);
   std::cout << "ok" << std::endl;

   Aclone->setValue(3);
   std::cout << "Aclone->setValue(3): ";
   assertThat(A->getValue()).isEqualTo(2);
   assertThat(Acopy->getValue()).isEqualTo(2);
   assertThat(Aclone->getValue()).isEqualTo(3);
   std::cout << "ok" << std::endl;

   Acopy->setValue(4);
   std::cout << "Acopy->setValue(4): ";
   assertThat(A->getValue()).isEqualTo(4);
   assertThat(Acopy->getValue()).isEqualTo(4);
   assertThat(Aclone->getValue()).isEqualTo(3);
   std::cout << "ok" << std::endl;

   delete Aclone;
   assertThat(A->getValue()).isEqualTo(4);
   assertThat(Acopy->getValue()).isEqualTo(4);

   delete Acopy;
   assertThat(A->getValue()).isEqualTo(4);

   delete A;
}