public void ShouldReturnSetsInfo()
        {
            AddPerformerAndSongToSet();

            string actualResult   = setController.PerformSets();
            string expectedResult = "1. Atanas:\r\n-- 1. Song (02:20)\r\n-- Set Successful";

            Assert.AreEqual(expectedResult, actualResult);
        }
示例#2
0
        public void PerformWithEmptySetShouldExecuteProperly()
        {
            ISet set = new Medium("setIsLit");

            stage.AddSet(set);
            string actualResult   = setController.PerformSets();
            string expectedResult = "1. setIsLit:\r\n-- Did not perform";

            Assert.That(actualResult, Is.EqualTo(expectedResult));
        }
示例#3
0
        public string ProcessCommand(string input)
        {
            string[] tokens = input.Split(" ".ToCharArray().First());

            string commandType = tokens.First();

            string[] inputArgs = tokens.Skip(1).ToArray();

            if (commandType == "LetsRock")
            {
                string result = setCоntroller.PerformSets();
                return(result);
            }

            var festivalControllerMethod = this.festivalCоntroller.GetType()
                                           .GetMethods()
                                           .FirstOrDefault(x => x.Name == commandType);

            string message = string.Empty;

            try
            {
                return((string)festivalControllerMethod.Invoke(festivalCоntroller, new object[] { inputArgs }));
            }
            catch (TargetInvocationException up)
            {
                throw up.InnerException;
            }
            return(message);
        }
        public string ProcessCommand(string input)
        {
            string[] tokens = input.Split(" ".ToCharArray().First());

            var command    = tokens.First();
            var parameters = tokens.Skip(1).ToArray();

            string output = String.Empty;

            switch (command)
            {
            case "RegisterSet":
                output = festivalCоntroller.RegisterSet(parameters);
                break;

            case "SignUpPerformer":
                output = festivalCоntroller.SignUpPerformer(parameters);
                break;

            case "RegisterSong":
                output = festivalCоntroller.RegisterSong(parameters);
                break;

            case "AddSongToSet":
                output = festivalCоntroller.AddSongToSet(parameters);
                break;

            case "AddPerformerToSet":
                output = festivalCоntroller.AddPerformerToSet(parameters);
                break;

            case "RepairInstruments":
                output = festivalCоntroller.RepairInstruments();
                break;

            case "LetsRock":
                output = setCоntroller.PerformSets();
                break;
            }

            return(output);

            /*
             * var festivalcontrolfunction = this.festivalController.GetType()
             *  .GetMethods()
             *  .FirstOrDefault(x => x.Name == purvoto);
             *
             * string a;
             *
             * try
             * {
             *  a = (string)festivalcontrolfunction.Invoke(this.festivalController, new object[] { parametri });
             * }
             * catch (TargetInvocationException up)
             * {
             *  throw up; // ha ha
             * }
             *
             * return a;*/
        }
示例#5
0
        public string ProcessCommand(string input)
        {
            var details = input.Split();

            var command    = details.First();
            var parameters = details.Skip(1).ToArray();

            if (command == "LetsRock")
            {
                return(setController.PerformSets());
            }

            var festivalControlFunction = festivalCоntroller.GetType()
                                          .GetMethods()
                                          .FirstOrDefault(x => x.Name == command);

            var output = "";

            try
            {
                output = (string)festivalControlFunction.Invoke(this.festivalCоntroller, new object[] { parameters });
            }
            catch (TargetInvocationException ex)
            {
                output = "ERROR: " + ex.InnerException.Message;
            }

            return(output);
        }
示例#6
0
        public string ProcessCommand(string input)
        {
            var split = input.Split();

            var firstArg   = split.First();
            var parameters = split.Skip(1).ToArray();

            if (firstArg == "LetsRock")
            {
                var sets = setCоntroller.PerformSets();
                return(sets);
            }

            var festivalcontrolfunction = festivalCоntroller.GetType()
                                          .GetMethods()
                                          .FirstOrDefault(x => x.Name == firstArg);

            return((string)festivalcontrolfunction.Invoke(festivalCоntroller, new object[] { parameters }));
        }
示例#7
0
        public void PerformSetsShoulPerform()
        {
            var set1 = new Short("Set1");
            var set2 = new Medium("Set2");

            var ivan = new Performer("Ivan", 20);

            ivan.AddInstrument(new Guitar());
            var gosho = new Performer("Gosho", 24);

            gosho.AddInstrument(new Drums());
            var pesho = new Performer("Pesho", 19);

            pesho.AddInstrument(new Guitar());
            pesho.AddInstrument(new Microphone());

            Song song1 = new Song("Song1", new TimeSpan(0, 1, 2));

            set1.AddSong(song1);
            set1.AddPerformer(gosho);
            set1.AddPerformer(pesho);

            stage.AddSet(set1);
            stage.AddSet(set2);

            var expected = @"1. Set1:
-- 1. Song1 (01:02)
-- Set Successful
2. Set2:
-- Did not perform";

            var actual = setController.PerformSets();

            Assert.That(expected, Is.EqualTo(actual));
            Assert.That(pesho.Instruments.First().Wear, Is.EqualTo(40));
        }
示例#8
0
        public string ProcessCommand(string input)
        {
            var data = input.Split();
            var args = data.Skip(1).ToArray();

            var sb = new StringBuilder();

            if (data[0].Equals("RegisterSet"))
            {
                try
                {
                    sb.AppendLine(festivalCоntroller.RegisterSet(args));
                }
                catch (Exception e)
                {
                    sb.AppendLine(string.Format(ErrorMessage, e.Message));
                }
            }
            else if (data[0] == "SignUpPerformer")
            {
                try
                {
                    sb.AppendLine(festivalCоntroller.SignUpPerformer(args));
                }
                catch (Exception e)
                {
                    sb.AppendLine(string.Format(ErrorMessage, e.Message));
                }
            }

            else if (data[0].Equals("RegisterSong"))
            {
                try
                {
                    sb.AppendLine(festivalCоntroller.RegisterSong(args));
                }
                catch (Exception e)
                {
                    sb.AppendLine(string.Format(ErrorMessage, e.Message));
                }
            }
            else if (data[0].Equals("AddSongToSet"))
            {
                try
                {
                    sb.AppendLine(festivalCоntroller.AddSongToSet(args));
                }
                catch (Exception e)
                {
                    sb.AppendLine(string.Format(ErrorMessage, e.Message));
                }
            }
            else if (data[0].Equals("AddPerformerToSet"))
            {
                try
                {
                    sb.AppendLine(festivalCоntroller.AddPerformerToSet(args));
                }
                catch (Exception e)
                {
                    sb.AppendLine(string.Format(ErrorMessage, e.Message));
                }
            }
            else if (data[0].Equals("RepairInstruments"))
            {
                try
                {
                    sb.AppendLine(festivalCоntroller.RepairInstruments(args));
                }
                catch (Exception e)
                {
                    sb.AppendLine(string.Format(ErrorMessage, e.Message));
                    throw;
                }
            }
            else if (data[0].Equals("LetsRock"))
            {
                sb.AppendLine(setCоntroller.PerformSets());
            }

            return(sb.ToString().TrimEnd());
        }
        public string ProcessCommand(string input)
        {
            string result = string.Empty;

            try
            {
                string[] inputs = input.Split();

                string   command           = inputs[0];
                string[] commandInputsList = inputs.Skip(1).ToArray();

                switch (command)
                {
                case "RegisterSet":
                    result = (festivalCоntroller.RegisterSet(commandInputsList));
                    break;

                case "SignUpPerformer":
                    result = (festivalCоntroller.SignUpPerformer(commandInputsList));
                    break;

                case "RegisterSong":
                    result = (festivalCоntroller.RegisterSong(commandInputsList));
                    break;

                case "AddSongToSet":
                    result = (festivalCоntroller.AddSongToSet(commandInputsList));
                    break;

                case "AddPerformerToSet":
                    result = (festivalCоntroller.AddPerformerToSet(commandInputsList));
                    break;

                case "RepairInstruments":
                    result = (festivalCоntroller.RepairInstruments(commandInputsList));
                    break;

                case "LetsRock":
                    result = (setCоntroller.PerformSets());
                    break;

                case "END":
                    result = festivalCоntroller.ProduceReport();
                    return(result);

                default:
                    break;
                }

                return(result);

                //	string.Intern(input);

                //    var result = this.DoCommand(input);
                //    this.writer.WriteLine(result);
            }
            catch (Exception ex) // in case we run out of memory
            {
                // Fix this!!!! if needed
                result = ("ERROR: " + ex.Message);
                return(result);
            }
        }
示例#10
0
 public string ProduceReport()
 {
     return(setController.PerformSets());
 }
示例#11
0
 public void TestPerformSetsEmpty()
 {
     Assert.AreEqual(setController.PerformSets(), string.Empty);
 }