package spoon.test.ctElement;
import org.junit.Test;
import spoon.reflect.code.CtReturn;
import spoon.reflect.declaration.CtClass;
import spoon.reflect.declaration.CtMethod;
import spoon.reflect.factory.Factory;
import spoon.test.ctElement.testclasses.Returner;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static spoon.testing.utils.ModelUtils.build;
public class MetadataTest {
@Test
public void testMetadata() throws Exception {
final Factory factory = build(Returner.class);
final CtClass<Returner> returnerClass = factory.Class().get(Returner.class);
final CtMethod<?> staticMethod = returnerClass.getMethodsByName("get").get(0);
final CtReturn<Integer> ret = staticMethod.getBody().getLastStatement();
assertNotNull(ret.getMetadataKeys());
final CtMethod<?> staticMethod2 = returnerClass.getMethodsByName("get2").get(0);
final CtReturn<Integer> ret2 = staticMethod2.getBody().getLastStatement();
ret.putMetadata("foo", "bar");
ret.putMetadata("fiz", 1);
assertNotNull(ret.getMetadata("fiz"));
assertNull(ret2.getMetadata("fiz"));
assertEquals(1, ret.getMetadata("fiz"));
assertEquals("bar", ret.getMetadata("foo"));
}
}