Beispiel #1
0
        static void Main(string[] args)
        {
            Action <object> toDo  = new Action <object>(sInfo => Console.WriteLine("Receiver performed first action : {0} - {1} ", sInfo, DateTime.Now.ToLongTimeString()));
            Action <object> toDo1 = new Action <object>(sInfo =>
            {
                string ss = sInfo.ToString();
                if (sInfo is string)
                {
                    ss = (string)sInfo;
                }
                Console.WriteLine("Receiver performed second action : {0} ", DateTime.Now.AddSeconds(ss.Length).ToLongTimeString());
            });

            CustomReceiverFactory recFactory  = new CustomReceiverFactory();
            CustomCommandFactory  cmdFactory  = new CustomCommandFactory();
            CustomSenderFactory   sendFactory = new CustomSenderFactory();

            ICustomReceiver rec  = recFactory.Create(toDo);
            ICustomCommand  cmd  = cmdFactory.Create(rec);
            ICustomSender   send = sendFactory.Create(cmd);

            send.ExecuteCommand("step1");
            send.ExecuteCommand("step2");

            rec.DettachCommand();
            rec.AttachCommand(toDo1, null);

            send.ExecuteCommand("this is dummy 1");
            send.ExecuteCommand("this is dummy 2 again");

            Console.WriteLine("quit?");
            Console.ReadLine();
        }
Beispiel #2
0
        public void CustomCommandForListBox()
        {
            var listBox         = window.Get <ListBox>("listBox");
            var listBoxCommands = new CustomCommandFactory().Create <IListBoxCommands>(listBox);

            Assert.AreEqual(2, listBoxCommands.ItemCount);
        }
Beispiel #3
0
        static void Main(string[] args)
        {
            var toDo = new Action<object>( sInfo => Console.WriteLine("Receiver performed first action : {0} - {1} ", sInfo, DateTime.Now.ToLongTimeString()) ) ;
               var toDo1 = new Action<object>(sInfo =>
                            {
                                string ss = sInfo.ToString();
                                if (sInfo is string)
                                    ss = (string)sInfo;
                                Console.WriteLine("Receiver performed second action : {0} ", DateTime.Now.AddSeconds(ss.Length).ToLongTimeString() ) ;
                            } );

            var recFactory = new CustomReceiverFactory();
            var cmdFactory = new CustomCommandFactory();
            var sendFactory = new CustomSenderFactory();

            var rec = recFactory.Create(toDo);
            var cmd = cmdFactory.Create(rec);
            var send = sendFactory.Create(cmd);

            send.ExecuteCommand("step1");
            send.ExecuteCommand("step2");

            rec.DettachCommand();
            rec.AttachCommand(toDo1, null);

            send.ExecuteCommand("this is dummy 1");
            send.ExecuteCommand("this is dummy 2 again");

            Console.WriteLine("quit?");
            var readLine = Console.ReadLine();
        }
Beispiel #4
0
        public void GetBorderThickness()
        {
            var button         = browserWindow.SilverlightDocument.Get <Button>("buton");
            var wpfWhiteButton = new CustomCommandFactory().Create <IButtonCommands>(button);

            Assert.AreEqual(1, wpfWhiteButton.BorderBottomThickness);
        }
 public void GetBorderThickness()
 {
     CustomCommandSerializer.AddKnownTypes(typeof(Thickness));
     var button = window.Get<Button>("button");
     var wpfWhiteButton = new CustomCommandFactory().Create<IButtonCommands>(button);
     Thickness thickness = wpfWhiteButton.BorderThickness;
     Assert.AreNotEqual(0, thickness.Bottom);
 }
 public void SelectText()
 {
     var textBox = window.Get<TextBox>("textbox");
     Assert.AreEqual("Foo", textBox.Text);
     textBox.Text = "foobarbaz";
     var wpfTextBoxCommands = new CustomCommandFactory().Create<ITextBoxCommands>(textBox);
     wpfTextBoxCommands.SelectText("bar");
     Assert.AreEqual("foobarbaz", textBox.Text);
 }
        public void GetBorderThickness()
        {
            CustomCommandSerializer.AddKnownTypes(typeof(Thickness));
            var       button         = window.Get <Button>("button");
            var       wpfWhiteButton = new CustomCommandFactory().Create <IButtonCommands>(button);
            Thickness thickness      = wpfWhiteButton.BorderThickness;

            Assert.AreNotEqual(0, thickness.Bottom);
        }
 public void Select()
 {
     var comboBox = browserWindow.SilverlightDocument.Get<ComboBox>("custom_combo");
     var comboBoxCommands = new CustomCommandFactory().Create<IComboBoxCommands>(comboBox);
     comboBoxCommands.Select("Quux");
     Assert.AreEqual("Quux", comboBox.SelectedItemText);
     comboBoxCommands.Select("Quux");
     Assert.AreEqual("Quux", comboBox.SelectedItemText);
 }
Beispiel #9
0
        public void Select()
        {
            var comboBox         = browserWindow.SilverlightDocument.Get <ComboBox>("custom_combo");
            var comboBoxCommands = new CustomCommandFactory().Create <IComboBoxCommands>(comboBox);

            comboBoxCommands.Select("Quux");
            Assert.AreEqual("Quux", comboBox.SelectedItemText);
            comboBoxCommands.Select("Quux");
            Assert.AreEqual("Quux", comboBox.SelectedItemText);
        }
Beispiel #10
0
        public void SelectText()
        {
            var textBox = window.Get <TextBox>("textbox");

            Assert.AreEqual("Foo", textBox.Text);
            textBox.Text = "foobarbaz";
            var wpfTextBoxCommands = new CustomCommandFactory().Create <ITextBoxCommands>(textBox);

            wpfTextBoxCommands.SelectText("bar");
            Assert.AreEqual("foobarbaz", textBox.Text);
        }
Beispiel #11
0
        public void GetType_ExistingTypeFullName_Instantiated()
        {
            var factory = new CustomCommandFactory();
            var type    = factory.GetType
                          (
                Assembly.GetExecutingAssembly()
                , typeof(CustomCommandWithMulipleCtors).FullName
                          );

            Assert.That(type, Is.EqualTo(typeof(CustomCommandWithMulipleCtors)));
        }
Beispiel #12
0
        public void Instantiate_WithoutCtorParameter_Instantiated()
        {
            var factory  = new CustomCommandFactory();
            var instance = factory.Instantiate
                           (
                typeof(CustomCommandWithoutParameter),
                new ReadOnlyDictionary <string, object>(new Dictionary <string, object>())
                           );

            Assert.That(instance, Is.Not.Null);
            Assert.That(instance, Is.AssignableTo <ICustomCommand>());
        }
Beispiel #13
0
        public void Instantiate_WithoutCtorTwoParametersIncorrectCase_Instantiated()
        {
            var factory  = new CustomCommandFactory();
            var instance = factory.Instantiate
                           (
                typeof(CustomCommandWithTwoParameters),
                new ReadOnlyDictionary <string, object>(new Dictionary <string, object>()
            {
                { "Count", "5" },
                { "naME", "myName" },
            })
                           );

            Assert.That(instance, Is.Not.Null);
            Assert.That(instance, Is.AssignableTo <ICustomCommand>());
        }
        public void TestCustomCommands()
        {
            var myTextBox = _horizonWindow.Get<TextBox>("myTextBox");
            var button = _horizonWindow.Get<Button>("changeColorButton");
            var myCommands = new CustomCommandFactory().Create<ITextBoxCommands>(myTextBox);

            myTextBox.Text = "Hello";

            Assert.That(myCommands.Background.Color, Is.EqualTo(Colors.White.ToString()));
            Assert.That(myTextBox.Text, Is.EqualTo("Hello"));

            button.Click();

            // These two asserts fail
            //            Assert.That(myCommands.Background.Color, Is.EqualTo(Colors.LightBlue.ToString()));
            //            Assert.That(myTextBox.Text, Is.EqualTo("Hello"));

            // These two asserts pass
            Assert.That(myTextBox.Text, Is.EqualTo("Hello"));
            Assert.That(myCommands.Background.Color, Is.EqualTo(Colors.LightBlue.ToString()));
        }
Beispiel #15
0
        public void Instantiate_MultipleConstructors_Instantiated()
        {
            var factory  = new CustomCommandFactory();
            var instance = factory.Instantiate
                           (
                typeof(CustomCommandWithMulipleCtors),
                new ReadOnlyDictionary <string, object>(new Dictionary <string, object>()
            {
                { "count", "5" },
                { "name", "myName" },
            })
                           );

            Assert.That(instance, Is.Not.Null);
            Assert.That(instance, Is.AssignableTo <ICustomCommand>());

            instance = factory.Instantiate
                       (
                typeof(CustomCommandWithMulipleCtors),
                new ReadOnlyDictionary <string, object>(new Dictionary <string, object>()
            {
                { "name", "myName" },
            })
                       );
            Assert.That(instance, Is.Not.Null);
            Assert.That(instance, Is.AssignableTo <ICustomCommand>());

            instance = factory.Instantiate
                       (
                typeof(CustomCommandWithMulipleCtors),
                new ReadOnlyDictionary <string, object>(new Dictionary <string, object>()
            {
            })
                       );
            Assert.That(instance, Is.Not.Null);
            Assert.That(instance, Is.AssignableTo <ICustomCommand>());
        }
        public void TestCustomCommand_CreateFactory()
        {
            // arrange
            var fact = new CustomCommandFactory();
            //act

            //assert
            Assert.IsNotNull(fact);
        }
Beispiel #17
0
        static void Main(string[] args)
        {
            string url  = "irc.chat.twitch.tv";
            int    port = 80;

            string user       = "******";
            string oAuthToken = System.IO.File.ReadAllText(@"token.txt"); // token.txt must be in the same folder as EXE
            string channel    = "lobosjr";

            //Set up one IrcClient, only one is required it allows better cooldown managerment and traffic will
            //never cause this code to run slower then any twitch cool down for bots.
            TwitchClientFactory icf    = new TwitchClientFactory();
            ITwitchClient       client = icf.create(url, port, user, oAuthToken, channel, 600,
                                                    new OperationRequestEventRaiser(), new PrivMessageEventRaiser(),
                                                    new WhisperMessageEventRaiser());

            client.DefaultMessageHandler += (o, e) =>
            {
                Console.WriteLine(string.Format("System: {0}", e.Raw));
            };

            //Set up Legacy Item -> IEquipment converter.
            LegacyItemEquipmentConverter liec = new LegacyItemEquipmentConverter();
            //Set up Equipment repository, if legacy then this will load all items from old files and convert them
            //into IEquipment in memory.
            IEquipmentRepository equipmentRepository = LegacyEquipmentRepository
                                                       .getInstance(liec, LegacyEquipmentRepository.LEGACY_ITEM_BRIDGE_FILE_PATH,
                                                                    LegacyEquipmentRepository.LEGACY_ITEM_PREFIX_FILE_PATH);

            //Set up Player Repository, Factory and default ILevelObservers
            ILevelObserver levelUpNotifier = new LevelupNotifier(client);
            PlayerFactory  pf = new PlayerFactory(3, 20, levelUpNotifier);
            ILevelObserver classChoiceNotifier = new ClassChoiceNotifier(client, pf, 3);

            pf.GetCurrentDefaultObservers().Add(classChoiceNotifier);
            IPlayerRepository playerRepo = LegacyPlayerRepository.getInstance(3, 20, pf,
                                                                              equipmentRepository, LegacyPlayerRepository.LEGACY_USER_COINS_FILE_PATH,
                                                                              LegacyPlayerRepository.LEGACY_USER_XP_FILE_PATH,
                                                                              LegacyPlayerRepository.LEGACY_USER_CLASS_FILE_PATH, "players.json");


            //Set up Adventure repository.
            IAdventureRepository adventureRepository = LegacyAdventureRepository
                                                       .getInstance(LegacyAdventureRepository.LEGACY_DUNGEON_BRIDGE_FILE_PATH,
                                                                    LegacyAdventureRepository.LEGACY_DUNGEON_FILE_PATH_PREFIX, equipmentRepository);

            //Set up Adventure manager who's Run() func should be used to run adventures on a daemon thread
            IAdventureManager adventureManager = new AdventureManager(client, 3);

            new Thread(() =>
            {
                Thread.CurrentThread.Name         = "Adventure Manager";
                Thread.CurrentThread.IsBackground = true;
                adventureManager.Run();
            }).Start();
            //Set up Party Pool, this keeps track of current parties.
            IPartyPool partyPool = new PartyPool(client);
            //Set up Group finder, use the current adventure managers queue. Decide party size capacity for
            // group finder.
            GroupFinderFactory gff         = new GroupFinderFactory();
            IGroupFinder       groupFinder = gff.Create(partyPool, 3, adventureRepository,
                                                        adventureManager);

            //Set up FutureTask Registry which will keep track of time based operations
            FutureTaskRegistry futureTaskRegistry = new FutureTaskRegistry();

            //Set up Custom Command Factory and Repository for the Command Manager allowing
            //for saved custom commands to be used aswell as providing capability for new
            //custom commands to be created from chat(broadcaster/mod only).
            CustomCommandFactory    ccf            = new CustomCommandFactory();
            CustomCommandRepository ccr            = new CustomCommandRepository();
            CommandManager          commandManager = new CommandManager(client, ccf, ccr);

            //Initialise all commands to be added to the command manager, seperated by
            //the source of the request, either PRVMSG or WHISPER.
            #region Initialisation of Commands

            #region General Commands

            UptimeCommand          uptime       = new UptimeCommand();
            Command <IPrivRequest> broadcasting = new BroadcastingFlagCommand(user, playerRepo,
                                                                              pf, uptime, client, futureTaskRegistry, 1, 3, 2, TimeSpan.FromMinutes(30));
            Command <IPrivRequest> time     = new TimeCommand();
            Command <IPrivRequest> playlist = new PlaylistCommand("http://open.spotify.com/user/1251282601/playlist/2j1FVSjJ4zdJiqGQgXgW3t");
            Command <IPrivRequest> opinion  = new OpinionCommand();
            Command <IPrivRequest> pun      = new PunCommand();
            Command <IPrivRequest> quote    = new QuoteCommand();
            Command <IPrivRequest> raffle   = new RaffleCommand(client, 5, futureTaskRegistry);

            #endregion

            #region RPG Commands

            #region General

            Command <IWhisperRequest> stats     = new StatsCommand(pf, playerRepo);
            Command <IWhisperRequest> inventory = new InventoryCommand(pf, playerRepo);
            Command <IWhisperRequest> item      = new ItemCommand(equipmentRepository, pf, playerRepo);
            Command <IWhisperRequest> equip     = new EquipCommand(equipmentRepository, pf, playerRepo);
            Command <IWhisperRequest> unequip   = new UnequipCommand(equipmentRepository, pf,
                                                                     playerRepo);
            Command <IWhisperRequest> shop        = new ShopCommand();
            Command <IWhisperRequest> classChoice = new ClassChoice(pf, playerRepo, 3);
            Command <IWhisperRequest> gloat       = new GloatCommand(client, pf, playerRepo);
            Command <IWhisperRequest> respec      = new RespecCommand(pf, playerRepo);
            Command <IWhisperRequest> daily       = new DailyCommand(pf, playerRepo);
            Command <IWhisperRequest> queue       = new QueueCommand(groupFinder, pf, playerRepo);
            Command <IWhisperRequest> leaveQueue  = new LeaveQueueCommand(groupFinder, pf, playerRepo);
            Command <IWhisperRequest> queueTime   = new QueueTimeCommand(groupFinder, pf, playerRepo);

            #endregion

            #region Party Commands

            Command <IWhisperRequest> createParty = new CreatePartyCommand(partyPool, pf,
                                                                           playerRepo);
            Command <IWhisperRequest> pendingInvite = new PendingInvite(partyPool, pf, playerRepo);
            Command <IWhisperRequest> leaveParty    = new LeavePartyCommand(pf, playerRepo);

            #region Party Leader Commands

            Command <IWhisperRequest> partyAdd   = new AddPartyCommand(client, pf, playerRepo);
            Command <IWhisperRequest> partyKick  = new KickPartyCommand(client, pf, playerRepo);
            Command <IWhisperRequest> partyStart = new StartPartyCommand(groupFinder, pf,
                                                                         playerRepo);
            Command <IWhisperRequest> partyPromote = new PromotePartyCommand(client, pf,
                                                                             playerRepo);

            #endregion

            #endregion

            #region Broadcaster only

            Command <IWhisperRequest> addPlayerXp    = new AddPlayerXP(pf, playerRepo);
            Command <IWhisperRequest> addPlayerCoin  = new AddPlayerCoin(pf, playerRepo);
            Command <IWhisperRequest> setPlayerLevel = new SetPlayerLevel(pf, playerRepo);

            #endregion

            #endregion

            #endregion

            commandManager.AddAll(uptime, broadcasting, time, playlist, opinion, pun, quote,
                                  raffle);
            commandManager.AddAll(stats, inventory, item, equip, unequip, shop, classChoice,
                                  gloat, respec, daily, queue, leaveQueue, queueTime, createParty, pendingInvite,
                                  leaveParty, partyAdd, partyKick, partyStart, partyPromote,
                                  addPlayerXp, addPlayerCoin, setPlayerLevel);

            //Provide Handles for events raised by client, multiple handles can be added
            //allow for parsing of PRVMSG chat for mirroring certain messages.
            #region Client Event Handling

            client.AddOperationHandler    += commandManager.Handle;
            client.CancelOperationHandler += commandManager.Handle;
            client.DeleteOperationHandler += commandManager.Handle;
            client.EditOperationHandler   += commandManager.Handle;
            client.InfoOperationHandler   += commandManager.Handle;

            client.PrivHandler += (o, e) =>
            {
                Console.WriteLine(string.Format("{0}: {1}", e.User, e.Message));
            };
            client.PrivRequestHandler += commandManager.Handle;

            client.WhisperHandler += (o, e) =>
            {
                Console.WriteLine(string.Format("Whisper {0}: {1}", e.User, e.Message));
            };
            client.WhisperRequestHandler += commandManager.Handle;



            #endregion

            //new thread for sending messages back to twitch server.
            new Thread(() =>
            {
                Thread.CurrentThread.Name         = "Twitch Client";
                Thread.CurrentThread.IsBackground = true;
                client.Run();
            }).Start();



            futureTaskRegistry.Run();
        }
 public void CustomCommandForListBox()
 {
     var listBox = window.Get<ListBox>("listBox");
     var listBoxCommands = new CustomCommandFactory().Create<IListBoxCommands>(listBox);
     Assert.AreEqual(2, listBoxCommands.ItemCount);
 }
 public void GetBorderThickness()
 {
     var button = browserWindow.SilverlightDocument.Get<Button>("buton");
     var wpfWhiteButton = new CustomCommandFactory().Create<IButtonCommands>(button);
     Assert.AreEqual(1, wpfWhiteButton.BorderBottomThickness);
 }
Beispiel #20
0
        public void TestCustomCommand_CreateFactory()
        {
            var fact = new CustomCommandFactory();

            Assert.IsNotNull(fact);
        }
 public void TestCustomCommand_CreateFactory()
 {
     var fact = new CustomCommandFactory();
     Assert.IsNotNull(fact);
 }