using System.Collections.Generic;
using System.Collections;
public static void Main()
Console.WriteLine("Enter a number");
number= Convert.ToInt16(Console.ReadLine());
IList<string> list = new List<string>();
TestFixture_CheckFizzBuzzTest test = new TestFixture_CheckFizzBuzzTest();
TestFixture_FizzBuzzManagerTest testCase=new TestFixture_FizzBuzzManagerTest();
testCase.TestFixtureSetUp_GetFizzOrBuzz();
test.Test_FizzBuzzForDivisibleByThree();
test.Test_FizzBuzzForDivisibleByFive();
test.Test_FizzBuzzForDivisibleByFiveAndThree();
test.Test_FizzBuzzForNotDivisibleByFiveOrThree();
var container = new Container();
{x.For<ICheckFizzBuzz>().Use<CheckFizzBuzz>();
x.For<IFizzBuzzManager>().Use<FizzBuzzManager>();});
IFizzBuzzManager obj=container.GetInstance<FizzBuzzManager>();
if((number>0)&&(number<=1000))
for(int i=1;i<=number;i++)
string word = obj.GetFizzOrBuzz(i);
foreach(var item in list)
Console.WriteLine("Please enter a valid positive number ie (1,1000)");
public interface ICheckFizzBuzz
string DivisibilityChecking(int number);
public interface IFizzBuzzManager
string GetFizzOrBuzz(int number);
public class FizzBuzzManager:IFizzBuzzManager
private ICheckFizzBuzz checkFizzBuzz;
public FizzBuzzManager(ICheckFizzBuzz checkFizzBuzz)
this.checkFizzBuzz=checkFizzBuzz;
public string GetFizzOrBuzz(int number)
string word = this.checkFizzBuzz.DivisibilityChecking(number);
public class CheckFizzBuzz:ICheckFizzBuzz
public string DivisibilityChecking(int number)
string word=number.ToString();
var combinations = new Tuple<int, string>[]
new Tuple<int, string> (3, "Fizz"),
new Tuple<int, string> (5, "Buzz"),
new Tuple<int, string> (15,"FizzBuzz"),
foreach (var comb in combinations)
if (number % comb.Item1 == 0)
public class TestFixture_FizzBuzzManagerTest
public void TestFixtureSetUp_GetFizzOrBuzz()
FizzBuzzManager obj= new FizzBuzzManager(new CheckFizzBuzz());
Assert.AreEqual("Fizz",obj.GetFizzOrBuzz(3));
public class TestFixture_CheckFizzBuzzTest
public void Test_FizzBuzzForDivisibleByThree()
var obj = new CheckFizzBuzz();
var result = obj.DivisibilityChecking(3);
Assert.AreEqual("Fizz",result);
public void Test_FizzBuzzForDivisibleByFive()
var obj = new CheckFizzBuzz();
var result = obj.DivisibilityChecking(5);
Assert.AreEqual("Buzz",result);
public void Test_FizzBuzzForDivisibleByFiveAndThree()
var obj = new CheckFizzBuzz();
var result = obj.DivisibilityChecking(15);
Assert.AreEqual("FizzBuzz",result);
public void Test_FizzBuzzForNotDivisibleByFiveOrThree()
var obj = new CheckFizzBuzz();
var result = obj.DivisibilityChecking(2);
Assert.AreNotEqual("Fizz",result);