 	}
 
 	[Test]
-	public function testCloneClassLevelMetadata():void {
+	public function testCloneWithClassLevelMetadata():void {
 		const clone1:ClassMarkedAsCloneable = Cloner.clone(classMarkedAsCloneable) as ClassMarkedAsCloneable;
 
 		assertNotNull(clone1);

		classMarkedAsCloneable.writableField = "value 4";

		classWithSomeCloneableFields = new ClassWithSomeCloneableFields();
		classWithSomeCloneableFieldsType = Type.forInstance(classWithSomeCloneableFields);
	}


		assertNotNull(clone1.writableField);
		assertEquals(clone1.writableField, classMarkedAsCloneable.writableField);
	}

	public function testCloneWithPropertyLevelMetadata():void {
		const clone2:ClassWithSomeCloneableFields = Cloner.clone(
				classWithSomeCloneableFields
		) as ClassWithSomeCloneableFields;

		assertNotNull(clone2);
		assertNull(clone2.property1);
		assertNotNull(clone2.property2);
		assertEquals(clone2.property2, classWithSomeCloneableFields.property2);
		assertNotNull(clone2.property3);
		assertEquals(clone2.property3, classWithSomeCloneableFields.property3);
		assertNotNull(clone2.writableField);
		assertEquals(clone2.writableField, classWithSomeCloneableFields.writableField);
	}
}
}