public void canGetAllProperties() {
Bean parent = new Bean();
parent.setProperty("parentProperty", "parentProperty");
parent.setReadWriteProperty("ignore me");
parent.doSetReadOnlyProperty("ignore me");
Convention parentConvention = new DefaultConvention();
parentConvention.getPlugins().put("parent", new ConventionBean());
parent.setConvention(parentConvention);
GroovyBean bean = new GroovyBean();
bean.setProperty("additional", "additional");
bean.setReadWriteProperty("readWriteProperty");
bean.doSetReadOnlyProperty("readOnlyProperty");
bean.setGroovyProperty("groovyProperty");
Convention convention = new DefaultConvention();
ConventionBean conventionBean = new ConventionBean();
conventionBean.setConventionProperty("conventionProperty");
convention.getPlugins().put("bean", conventionBean);
bean.setConvention(convention);
bean.setParent(parent);
Map<String, Object> properties = bean.getProperties();
assertThat(properties.get("properties"), sameInstance((Object) properties));