### Question:
NodeShapeImpl extends AbstractElementShape<W, View<W>, Node<View<W>, Edge>, D, V> implements NodeShape<W, View<W>, Node<View<W>, Edge>, V>,
                   Lifecycle { @Override public void applyState(final ShapeState shapeState) { getShape().applyState(shapeState); } NodeShapeImpl(final D shapeDef,
                         final AbstractShape<V> shape); @Override void applyPosition(final Node<View<W>, Edge> element,
                              final MutationContext mutationContext); @Override void applyState(final ShapeState shapeState);  }### Answer:
@Test public void testApplyProperties() { when(shapeStateHandler.reset()).thenReturn(ShapeState.NONE); tested.applyProperties(element, MutationContext.STATIC); verify(shapeStateHandler, times(1)).reset(); verify(shapeStateHandler, times(1)).shapeAttributesChanged(); verify(shapeStateHandler, times(1)).applyState(eq(ShapeState.NONE)); verify(viewHandler, times(1)).accept(eq(definition), eq(view)); verify(sizeHandler, times(1)).accept(eq(content), eq(view)); }
@Test public void testApplyState() { tested.applyState(ShapeState.INVALID); verify(shapeStateHandler, times(1)).applyState(eq(ShapeState.INVALID)); }