public void testNatureAddAndRemove() throws CoreException {
IProject eclipseProject = project.getProject();
assertNotNull(eclipseProject);
IBeansModel model = BeansCorePlugin.getModel();
assertNotNull(model);
assertFalse(hasBeansProjectNature());
assertNull(model.getProject(eclipseProject));
assertFalse(hasBeansBuilder());
SpringCoreUtils.addProjectNature(eclipseProject, SpringCore.NATURE_ID, new NullProgressMonitor());
project.waitForAutoBuild();
assertNotNull (eclipseProject.getNature(SpringCore.NATURE_ID));
assertTrue ( eclipseProject.getNature(SpringCore.NATURE_ID) instanceof SpringProjectNature);
assertTrue(hasBeansProjectNature());
assertNotNull(model.getProject(eclipseProject));
assertTrue(hasBeansBuilder());
BeansProject proj = (BeansProject) model.getProject(eclipseProject);
assertNotNull(proj);
assertTrue(hasBeansDecorator());
SpringCoreUtils.removeProjectNature(eclipseProject, SpringCore.NATURE_ID, new NullProgressMonitor());
project.waitForAutoBuild();
assertFalse(hasBeansProjectNature());
assertNull(model.getProject(eclipseProject));
assertFalse(hasBeansBuilder());
}