@Test void toggleShouldDecay() { // Given DecayingFlags.Key featureA = new DecayingFlags.Key( 1 ); DecayingFlags.Key featureB = new DecayingFlags.Key( 3 ); DecayingFlags set = new DecayingFlags( 2 ); // And given Feature A has been used quite a bit, while // feature B is not quite as popular.. set.flag( featureA ); set.flag( featureA ); set.flag( featureB ); // When set.sweep(); // Then assertEquals( "4000", set.asHex() ); // When set.sweep(); // Then assertEquals( "0000", set.asHex() ); }
@Test void resetFlagShouldRecoverIfToggledAgain() { // Given DecayingFlags.Key featureA = new DecayingFlags.Key( 9 ); DecayingFlags set = new DecayingFlags( 2 ); set.flag( featureA ); // When set.sweep(); // Then assertEquals( "0000", set.asHex() ); // When set.flag( featureA ); // Then assertEquals( "0040", set.asHex() ); } }
@Test void shouldTrackMultipleFlags() { // Given DecayingFlags.Key featureA = new DecayingFlags.Key( 1 ); DecayingFlags.Key featureB = new DecayingFlags.Key( 3 ); DecayingFlags set = new DecayingFlags( 2 ); // When set.flag( featureA ); set.flag( featureA ); set.flag( featureB ); // Then assertEquals( "5000", set.asHex() ); }
@Test void shouldTrackToggle() { // Given DecayingFlags.Key myFeature = new DecayingFlags.Key( 1 ); DecayingFlags set = new DecayingFlags( 1 ); // When set.flag( myFeature ); // Then assertEquals( "4000", set.asHex() ); }