@@ -8,57 +8,43 @@ namespace Sample.Test;
88[ TestClass ]
99public sealed class FizzBuzzTest
1010{
11- /// <summary>
12- /// Generate values that satisfy the <paramref name="predicate"/>.
13- /// </summary>
14- /// <param name="predicate">
15- /// <inheritdoc cref="Enumerable.Where{TSource}(IEnumerable{TSource}, Func{TSource, bool})" path="/param[@name='predicate']"/>
16- /// </param>
17- private static int [ ] GenerateValues ( Func < int , bool > predicate )
18- {
19- const int count = 10 ;
20- int [ ] values = new int [ count ] ;
21- for ( int i = 0 ; i < values . Length ; i ++ )
22- {
23- int value ;
24- do
25- {
26- value = FixtureFactory . Create < int > ( ) ;
27- } while ( ! predicate ( value ) ) ;
28- values [ i ] = value ;
29- }
30- return values ;
31- }
32-
3311 /// <summary>
3412 /// When number is not divisible by 3 and 5, <see cref="FizzBuzz.ToFizzBuzzFormat"/> returns same value as <see cref="int.ToString()"/>.
3513 /// </summary>
3614 [ TestMethod ( $ "{ nameof ( FizzBuzz ) } > { nameof ( FizzBuzz . ToFizzBuzzFormat ) } (<not a multiple of 3 and 5>) > returns same value as int.{ nameof ( int . ToString ) } ()") ]
37- public void When_Not_Devisible_By_3_And_5_ToFizzBuzzFormat_Returns_ToString ( )
38- => GenerateValues ( static i => i % 3 != 0 && i % 5 != 0 )
39- . Should ( ) . AllSatisfy ( static i => i . ToFizzBuzzFormat ( ) . Should ( ) . Be ( i . ToString ( ) ) ) ;
15+ [ DataRow ( 1 ) ]
16+ [ DataRow ( 101 ) ]
17+ [ DataRow ( - 1 ) ]
18+ public void When_Not_Devisible_By_3_And_5_ToFizzBuzzFormat_Returns_ToString ( int value )
19+ => value . ToFizzBuzzFormat ( ) . ShouldBe ( value . ToString ( ) ) ;
4020
4121 /// <summary>
4222 /// When number is divisible by 3, <see cref="FizzBuzz.ToFizzBuzzFormat"/> returns "Fizz".
4323 /// </summary>
4424 [ TestMethod ( $ "{ nameof ( FizzBuzz ) } > { nameof ( FizzBuzz . ToFizzBuzzFormat ) } (<multiple of 3>) > returns \" Fizz\" ") ]
45- public void When_Devisible_By_3_ToFizzBuzzFormat_Returns_Fizz ( )
46- => GenerateValues ( static i => i % 3 == 0 && i % 5 != 0 )
47- . Should ( ) . AllSatisfy ( static i => i . ToFizzBuzzFormat ( ) . Should ( ) . Be ( "Fizz" ) ) ;
25+ [ DataRow ( 3 ) ]
26+ [ DataRow ( 303 ) ]
27+ [ DataRow ( - 3 ) ]
28+ public void When_Devisible_By_3_ToFizzBuzzFormat_Returns_Fizz ( int value )
29+ => value . ToFizzBuzzFormat ( ) . ShouldBe ( "Fizz" ) ;
4830
4931 /// <summary>
5032 /// When number is divisible by 5, <see cref="FizzBuzz.ToFizzBuzzFormat"/> returns "Buzz".
5133 /// </summary>
5234 [ TestMethod ( $ "{ nameof ( FizzBuzz ) } > { nameof ( FizzBuzz . ToFizzBuzzFormat ) } (<multiple of 5>) > returns \" Buzz\" ") ]
53- public void When_Devisible_By_5_ToFizzBuzzFormat_Returns_Buzz ( )
54- => GenerateValues ( static i => i % 3 != 0 && i % 5 == 0 )
55- . Should ( ) . AllSatisfy ( static i => i . ToFizzBuzzFormat ( ) . Should ( ) . Be ( "Buzz" ) ) ;
35+ [ DataRow ( 5 ) ]
36+ [ DataRow ( 505 ) ]
37+ [ DataRow ( - 5 ) ]
38+ public void When_Devisible_By_5_ToFizzBuzzFormat_Returns_Buzz ( int value )
39+ => value . ToFizzBuzzFormat ( ) . ShouldBe ( "Buzz" ) ;
5640
5741 /// <summary>
5842 /// When number is divisible by 15, <see cref="FizzBuzz.ToFizzBuzzFormat"/> returns "Fizz Buzz".
5943 /// </summary>
6044 [ TestMethod ( $ "{ nameof ( FizzBuzz ) } > { nameof ( FizzBuzz . ToFizzBuzzFormat ) } (<multiple of 15>) > returns \" Fizz Buzz\" ") ]
61- public void When_Devisible_By_15_ToFizzBuzzFormat_Returns_FizzBuzz ( )
62- => GenerateValues ( static i => i % 3 == 0 && i % 5 == 0 )
63- . Should ( ) . AllSatisfy ( static i => i . ToFizzBuzzFormat ( ) . Should ( ) . Be ( "Fizz Buzz" ) ) ;
45+ [ DataRow ( 15 ) ]
46+ [ DataRow ( 300 ) ]
47+ [ DataRow ( - 15 ) ]
48+ public void When_Devisible_By_15_ToFizzBuzzFormat_Returns_FizzBuzz ( int value )
49+ => value . ToFizzBuzzFormat ( ) . ShouldBe ( "Fizz Buzz" ) ;
6450}
0 commit comments