static void Main(string[] args) { var fizzBuzzer = new FizzBuzzEngine(Console.Out, Rules.FizzRule, Rules.BuzzRule); fizzBuzzer.Run(15); Console.ReadLine(); }
public static void Main() { var engine = new FizzBuzzEngine <Startup>(); engine.Build(); engine.Run(); }
public void Build_CallsAddServicesInStartup() { var engine = new FizzBuzzEngine <SimpleFakeStartup>(); engine.Build(); Assert.IsTrue(SimpleFakeStartup.AddedServices); }
public void ConstructorHappyPath() { var sender = new Mock <ISender>().Object; var engine = new FizzBuzzEngine(sender); engine.Sender.Should().BeSameAs(sender); }
public void OutputShouldContainALineForEveryEntryBetween1AndTheUpperBound([Values(1, 10, 100, 1000, 42789)] int upperBound) { var writer = new FakeTextWriter(); var engine = new FizzBuzzEngine(writer); engine.Run(upperBound); Assert.AreEqual(upperBound, writer.Results.Length); }
public void Run_WithComplexStartup_RunsToCompletion() { var engine = new FizzBuzzEngine <ComplexFakeStartup>(); engine.Build(); engine.Run(); Assert.IsTrue(ComplexFakeStartup.RanToCompletion); }
public void Run_AfterBuild_CallsRunInStartupAndWaitsForCompletion() { var engine = new FizzBuzzEngine <SimpleFakeStartup>(); engine.Build(); engine.Run(); Assert.IsTrue(SimpleFakeStartup.RanToCompletion); }
public void Build_WithComplexStartup_InjectsPrerequisites() { var engine = new FizzBuzzEngine <ComplexFakeStartup>(); engine.Build(); Assert.IsNotNull(ComplexFakeStartup.FizzBuzzService); Assert.IsNotNull(ComplexFakeStartup.Factory); Assert.IsTrue(ComplexFakeStartup.AddedServices); }
private static void Main() { var engine = new FizzBuzzEngine <Startup>(); engine.Build(); engine.Run(); Console.WriteLine("Press any key to exit"); Console.ReadKey(true); }
public void WhenNoRulesAreSpecifiedTheResultsShouldBeAListOfNumbers() { var writer = new FakeTextWriter(); var engine = new FizzBuzzEngine(writer); engine.Run(15); Assert.AreEqual(15, writer.Results.Length); CollectionAssert.AreEquivalent(new [] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15" }, writer.Results); }
public void WhenMultipleRulesMatchBothValuesShouldBeOutput() { var writer = new FakeTextWriter(); var engine = new FizzBuzzEngine(writer, Rules.FizzRule, Rules.BuzzRule); engine.Run(15); Assert.AreEqual(15, writer.Results.Length); Assert.AreEqual(writer.Results.Last(), "FizzBuzz"); }
public void NumbersDivisibleBy3ShouldOutputFizz() { var writer = new FakeTextWriter(); var engine = new FizzBuzzEngine(writer, Rules.FizzRule); engine.Run(15); Assert.AreEqual("Fizz", writer.Results[2]); Assert.AreEqual("Fizz", writer.Results[5]); Assert.AreEqual("Fizz", writer.Results[8]); Assert.AreEqual("Fizz", writer.Results[11]); Assert.AreEqual("Fizz", writer.Results[14]); }
public async Task SendFizzBuzzMessageHappyPath4() { var mockSender = new Mock <ISender>(); var engine = new FizzBuzzEngine(mockSender.Object); await engine.SendFizzBuzzMessage(14); mockSender.Verify(m => m.SendAsync( It.Is <SenderMessage>(message => message.StringPayload == "14"), It.IsAny <CancellationToken>()), Times.Once()); }
public async Task SendFizzBuzzMessageSadPath() { var mockSender = new Mock <ISender>(); var engine = new FizzBuzzEngine(mockSender.Object); Func <Task> act = () => engine.SendFizzBuzzMessage(0); await act.Should().ThrowExactlyAsync <ArgumentOutOfRangeException>() .WithMessage("Must be greater than zero.*value*"); mockSender.Verify(m => m.SendAsync( It.IsAny <SenderMessage>(), It.IsAny <CancellationToken>()), Times.Never()); }
public void ItReturnsCorrectText() { var Expected = "1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz"; // Arrange var range = 20; var specs = new List <IFizzBuzzSpecification> { new Fizz(), new Buzz() }; // Act var result = FizzBuzzEngine.Launch(specs, range); // Assert Assert.AreEqual(result, Expected); }
static void Main(string[] args) { if (!args.Any()) { args = Enumerable.Range(1, 100).Select(x => x.ToString()).ToArray(); } var engine = new FizzBuzzEngine(); foreach (var arg in args) { Console.WriteLine(engine.Convert(int.Parse(arg))); } Console.ReadKey(); }
public void Run_BeforeBuild_ThrowsInvalidOperationException() { var engine = new FizzBuzzEngine <SimpleFakeStartup>(); Assert.Throws <InvalidOperationException>(() => engine.Run()); }
public void NewFizzBuzzEngine_DoesNotThrow() { Assert.DoesNotThrow(() => _ = new FizzBuzzEngine <SimpleFakeStartup>()); }
public FizzBuzzTest() { _target = new FizzBuzzEngine(); }