public void ShouldCReturnTheSameInstance() { var instance1 = BasicSingleton.GetInstance(); var instance2 = BasicSingleton.GetInstance(); instance1.Should().BeSameAs(instance2); }
public void ShouldCreateInstance() { var instance = BasicSingleton.GetInstance(); instance.Should().NotBeNull(); instance.Should().BeOfType <BasicSingleton>(); }
public void ZadanieB() { SingletonFactory factory = SingletonFactory.CreateSingletonFactory(); int singletonCount = 1000000; Type[] typeArray = { typeof(BasicSingleton), typeof(ExtendedSingletonA), typeof(ExtendedSingletonB) }; ISet <BasicSingleton> set = new HashSet <BasicSingleton>(); for (int i = 0; i < singletonCount; i++) { BasicSingleton singleton = factory.CreateSingleton(typeArray[rand.Next(typeArray.Length)]); set.Add(singleton); } Assert.AreEqual(set.Count, 3, "Ilość singletonów różna od 3!"); }
static void Main(string[] args) { /*Strategy Pattern*/ Console.WriteLine("Output for strategy pattern: \n"); Person swordsman = new Swordsman(new SwordBehaviour()); Console.WriteLine("The swordsman is:"); swordsman.Fight(); Console.WriteLine(); Person bowman = new Bowman(new BowBehaviour()); Console.WriteLine("The bowman is:"); bowman.Fight(); Console.WriteLine(); bowman.SetWeapon(new KnifeBehaviour()); Console.WriteLine("The bowman is:"); bowman.Fight(); Console.WriteLine(); Console.WriteLine("______________________________________________________________________________"); /*Observer Pattern*/ Console.WriteLine("Output for observer pattern: \n"); Newsticker newsticker = new Newsticker(); //Instance of subject SmartwatchDisplay smartwatchDisplay = new SmartwatchDisplay(newsticker); //instance of observer newsticker.RegisterObserver(smartwatchDisplay); //register observer to subject newsticker.SetNews("Breaking News! Hamburger Software does not sell burgers!"); //update news and notify observers Console.WriteLine("______________________________________________________________________________"); /*Decorator Pattern*/ Console.WriteLine("Output for decorator pattern: \n"); DungieGame dungieGame = new Worstiny(); Console.WriteLine(dungieGame.Description + "\nPrice: " + dungieGame.Price + "Euro"); Console.WriteLine(); dungieGame = new GoodDLC(dungieGame); Console.WriteLine(dungieGame.Description + "\nPrice: " + dungieGame.Price + "Euro"); Console.WriteLine(); dungieGame = new EvenBetterDLC(dungieGame); Console.WriteLine(dungieGame.Description + "\nPrice: " + dungieGame.Price + "Euro"); Console.WriteLine("______________________________________________________________________________"); /*Factory Method Pattern*/ Console.WriteLine("Output for factory method pattern: \n"); DeviceFactory factory = new DeviceFactory(); Factory_Method_Pattern.IDevice device = factory.MakeDevice(Factory_Method_Pattern.DeviceType.PC); Console.WriteLine("Factory created device:"); Console.WriteLine(device.Name); Console.WriteLine(); Console.WriteLine("______________________________________________________________________________"); /*Abstract Factory Pattern*/ Console.WriteLine("Output for abstract factory pattern: \n"); AbstractStore yStore = new YStore(); Device pineappleSmartphone = yStore.OrderDevice(Abstract_Factory_Pattern.DeviceType.Smartphone); Console.WriteLine("Peter received his " + pineappleSmartphone.Name + "!"); Console.WriteLine(); AbstractStore jupiterStore = new JupiterStore(); Device macroComputer = jupiterStore.OrderDevice(Abstract_Factory_Pattern.DeviceType.Computer); Console.WriteLine("Chris received his " + macroComputer.Name + "!"); Console.WriteLine("______________________________________________________________________________"); /*Singleton Pattern*/ Console.WriteLine("Output for singleton pattern: \n"); BasicSingleton basicSingleton = BasicSingleton.CreateInstance; Console.WriteLine(basicSingleton.Text); Console.ReadLine(); }