### Question:
Statistics { public static Statistics create() { return create( true ); } private  Statistics(); static Statistics create(); static Statistics create( final boolean enabled ); void registerSince( @Nonnull final StatsType statsType, final long startInMillis ); void register( @Nonnull final StatsType statsType, final long value ); @Nonnull MinMaxAvgProbe getProbe( @Nonnull final StatsType statsType ); void requestWithoutSession(); long getRequestsWithoutSession(); void requestWithSession(); long getRequestsWithSession(); void requestWithTomcatFailover(); long getRequestsWithTomcatFailover(); void requestWithMemcachedFailover(); long getRequestsWithMemcachedFailover(); void requestWithBackupFailure(); long getRequestsWithBackupFailure(); void requestWithoutSessionAccess(); long getRequestsWithoutSessionAccess(); void requestWithoutAttributesAccess(); long getRequestsWithoutAttributesAccess(); void requestWithoutSessionModification(); long getRequestsWithoutSessionModification(); void nonStickySessionsPingFailed(); long getNonStickySessionsPingFailed(); void nonStickySessionsReadOnlyRequest(); long getNonStickySessionsReadOnlyRequest();  }### Answer:
@Test( dataProvider = "methodNamesProvider" ) public void testCounts( final String getterMethod, final String updateMethod ) throws Exception { final Statistics cut = Statistics.create(); final Method getMethod = Statistics.class.getMethod( getterMethod ); assertEquals( ((Long)getMethod.invoke( cut )).longValue(), 0 ); Statistics.class.getMethod( updateMethod ).invoke( cut ); assertEquals( ((Long)getMethod.invoke( cut )).longValue(), 1 ); }