	@Test(expected = IllegalArgumentException.class)
	public void should_fail_with_duplicated_state_names() {

		// Given
		@Documentation(name = "Test component")
		class TestComponent implements Component {

			@State(name = "word count")
			private StateFactory stateFactory1;

			@State(name = "word count")
			private StateFactory stateFactory2;

			@Override
			public void init() {
			}
		}
		
		List<ReferencedStateDescription> expectedStateDescriptions = asList(new ReferencedStateDescription("word count"), new ReferencedStateDescription("word count"));
		given(stateDescriptionFactory.createDescriptions(TestComponent.class)).willReturn(expectedStateDescriptions );

		// When
		factory.createDescription(TestComponent.class);
	}