Exemplo n.º 1
0
        public void AFailingKoanReturnsAFailureMessage()
        {
            var result = new KoanContainer().RunKoans(new FailureContainer()).First();
            Assert.AreEqual("FailureKoan has damaged your karma.", result.Message);

            Assert.AreEqual("expected failure", (result as Failure).Exception.Message);
        }
Exemplo n.º 2
0
        public void AFailingKoanReturnsItsException()
        {
            var container = new KoanContainer();
            var result = container.RunKoans(new FailureContainer()).First();

            Assert.AreEqual("FailureKoan has damaged your karma.", result.Message);
        }
Exemplo n.º 3
0
        private KoanResult executeContainer(KoanContainer container)
        {
            var name    = container.GetType().Name;
            var lineOne = string.Format("When contemplating {0}:", name);

            var koanResults = new KoanContainer().RunKoans(container);
            var returnValue = koanResults.Aggregate <KoanResult, KoanResult>(new Success(lineOne), combineLinesUnlessFailed);

            return(returnValue);
        }
Exemplo n.º 4
0
 private KoanResult getKoanResult(KoanContainer container, MethodInfo m)
 {
     try{
         m.Invoke(container, new object[] { });
         return(new Success(m.Name + " has expanded your awareness."));
     }
     catch (Exception e)
     {
         return(new Failure(m.Name + " has damaged your karma.", e.InnerException));
     }
 }
Exemplo n.º 5
0
        private KoanResult executeContainer(KoanContainer container)
        {

            var name = container.GetType().Name;
            var lineOne = string.Format("When contemplating {0}:", name);

            var koanResults = new KoanContainer().RunKoans(container);
            var returnValue = koanResults.Aggregate<KoanResult, KoanResult>(new Success(lineOne), combineLinesUnlessFailed);
            return returnValue;


        }
Exemplo n.º 6
0
        private KoanResult getKoanResult(KoanContainer container, MethodInfo m)
        {
            try{
                m.Invoke(container, new object[] { });
                return new Success(m.Name + " has expanded your awareness.");
            }
            catch(Exception e)
            {
                return new Failure(m.Name + " has damaged your karma.", e.InnerException);
            }
 
        }
Exemplo n.º 7
0
        public void TheOutcomeOfAllSuccessfulKoansIsReturned()
        {
           var result =  new KoanContainer().RunKoans(new SomeSuccesses()).Select(x => x.Message).Aggregate((x, y) => x + System.Environment.NewLine + y);

            var expected = "One has expanded your awareness." + System.Environment.NewLine + "Two has expanded your awareness.";

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 8
0
 public void ASuccessfulKoanReturnsASuccessMessage()
 {
     var result = new KoanContainer().RunKoans(new SuccessContainer()).First();
     Assert.AreEqual("SuccessKoan has expanded your awareness.", result.Message);
 }
Exemplo n.º 9
0
        ////might want to change this behavior
        public void FailedKoansDontStopTheEnumeration()
        {
            var result = new KoanContainer().RunKoans(new MixedBag()).Select(x => x.Message).Aggregate((x, y) => x + System.Environment.NewLine + y);

            var expected = "One has damaged your karma." + System.Environment.NewLine + "Two has expanded your awareness.";

            Assert.AreEqual(expected, result);
        }
Exemplo n.º 10
0
 private IList<string> GetKoanNames(KoanContainer container)
 {
    var names = from x in KoanContainer.FindKoanMethods(container) select x.Name;
    return names.ToList();
   
 }
Exemplo n.º 11
0
 public IEnumerable <KoanResult> RunKoans(KoanContainer container)
 {
     return(from k in FindKoanMethods(container) select getKoanResult(container, k));
 }
Exemplo n.º 12
0
 public static IEnumerable <MethodInfo> FindKoanMethods(KoanContainer container)
 {
     return(container.GetType().GetMethods().Where(m => hasKoanAttribute(m)));
 }
Exemplo n.º 13
0
 public IEnumerable<KoanResult> RunKoans(KoanContainer container)
 {
     return from k in FindKoanMethods(container) select getKoanResult(container, k);
 }
Exemplo n.º 14
0
 public static IEnumerable<MethodInfo> FindKoanMethods(KoanContainer container)
 {
     return container.GetType().GetMethods().Where(m => hasKoanAttribute(m));
 }