public void CreateInstanceOfAttractRepulseSparkMutator_PassValidParameter() { ISparkGenerator generator = CreateAttractRepulseSparkGenerator(); AttractRepulseSparkMutator mutator = new AttractRepulseSparkMutator(generator); Assert.NotNull(mutator); }
public void MutateFirework_PassEachParameterAsNullAndOtherIsCorrect_ArgumentNullExceptionThrown( MutableFirework mutableFirework, FireworkExplosion explosion, String expectedParamName) { ISparkGenerator generator = CreateAttractRepulseSparkGenerator(); AttractRepulseSparkMutator mutator = new AttractRepulseSparkMutator(generator); ArgumentException exception = Assert.Throws <ArgumentNullException>(() => mutator.MutateFirework(ref mutableFirework, explosion)); Assert.Equal(expectedParamName, exception.ParamName); }
public void MutateFirework_PassValidParameters_ShouldChangeFireworkState() { Range range = new Range(-10, 10); IList <Dimension> dimensions = new List <Dimension>(); dimensions.Add(new Dimension(range)); dimensions.Add(new Dimension(range)); dimensions.Add(new Dimension(range)); IDictionary <Dimension, double> coordinatesBefore = new Dictionary <Dimension, double>(); IDictionary <Dimension, double> coordinatesAfter = new Dictionary <Dimension, double>(); foreach (Dimension dimension in dimensions) { coordinatesBefore.Add(dimension, 0); coordinatesAfter.Add(dimension, 1); } MutableFirework mutableFirework = new MutableFirework(FireworkType.SpecificSpark, 0, coordinatesBefore); MutableFirework mutateFirework = new MutableFirework(FireworkType.SpecificSpark, 1, coordinatesAfter); //present state mutable firework after mutate FireworkExplosion explosion = CreateFireworkExplosion(mutableFirework); ISparkGenerator generator = CreateAttractRepulseSparkGenerator(); generator.CreateSpark(explosion).Returns(mutateFirework); AttractRepulseSparkMutator mutator = Substitute.For <AttractRepulseSparkMutator>(generator); mutator.MutateFirework(ref mutableFirework, explosion); Assert.NotNull(mutableFirework); Assert.Equal(mutableFirework.BirthStepNumber, mutateFirework.BirthStepNumber); Assert.Equal(mutableFirework.Quality, mutateFirework.Quality); double dimensionValueBefore; double dimensionValueAfter; foreach (Dimension dimension in dimensions) { mutableFirework.Coordinates.TryGetValue(dimension, out dimensionValueBefore); mutateFirework.Coordinates.TryGetValue(dimension, out dimensionValueAfter); Assert.Equal(dimensionValueBefore, dimensionValueAfter); } }