private void assertActivity(Activity root, Activity parent, Activity current, RelationshipType type, boolean isPublic) {
		assertEquals(root, current.getRoot());
		assertEquals(parent, current.getParent());
		assertTrue(current.isMetadataCached());
		if (type == null)
			return;

		assertNotSame(parent.getPublicEnvironment(), current.getPublicEnvironment());
		switch (type) {
		case ArgumentExpression:
			assertEquals(parent.getPublicEnvironment().getParent(), current.getParentEnvironment());
			break;
		case Child:
		case VariableDefault:
			assertEquals(parent.getPublicEnvironment(), current.getParentEnvironment());
			break;
		default:
			break;
		}

		if (isPublic) {
			assertEquals(parent.getMemberOf(), current.getMemberOf());
			assertEquals(null, current.getMemberOf().getOwner());
			assertEquals(null, current.getMemberOf().getParent());
		} else {
			assertEquals(parent.getParentOf(), current.getMemberOf());
			assertEquals(parent, current.getMemberOf().getOwner());
			assertEquals(parent.getMemberOf(), current.getMemberOf().getParent());
		}
	}