Thursday, February 28, 2013

Post build events in projects to copy CVs to main Bin folder



Here are examples of post build eventst hat we used to use to copy the output of one project into the binfolder of antoher... now we ususally use references correctly.





copy /y "$(TargetDir)$(TargetFileName)" "$(SolutionDir)\JCDCADServices\JCDCADServices.ADStudent\bin\$(TargetFileName)"

copy /y "$(TargetDir)$(TargetFileName)" "$(SolutionDir)\JCDCADServices\JCDCADServices.ADStaff\bin\$(TargetFileName)"

Friday, February 8, 2013

Examples/ Cheatsheet of several common Unit Test sceneriao with Rhinomocks at JCDC

Examples/ Cheatsheet of several common Unit Test sceneriao with Rhinomocks at JCDC
//This test is to demonstrate "return values" from bll by taking different branches
[Test]
public void BllMethod1_TestFirstBranchByPassingSam()
{

     //*** Arrange***    
     SearchCallPersonVM criteria = new SearchCallPersonVM(){FirstName = "Sam"};
     Int64 returnValue = 0;
     // Add Stubs for other DAL methods!    
     callPersonDALHdl.Stub(x => x.DalMethod1(criteria)).IgnoreArguments().Return(100);

    
     //*** Act ***    
     returnValue = callPersonBLLHdl.BllMethod1(criteria);

    
     //*** Assert ***     
     Assert.AreEqual(returnValue,1);
}




[Test]
public void BllMethod1_TestSecondBranchByPassingMad()
{

     //*** Arrange***    

     SearchCallPersonVM criteria = new SearchCallPersonVM(){FirstName = "Mad"};
    
     Int64 returnValue = 0;
     // Add Stubs for other DAL methods!    
     callPersonDALHdl.Stub(x => x.DalMethod2(criteria)).IgnoreArguments().Return(100);



     //*** Act ***    
     returnValue = callPersonBLLHdl.BllMethod1(criteria);



     //*** Assert ***     
     Assert.AreEqual(returnValue, 2);
}




[Test]
public void BllMethod1_VerifyDalMethod1IsCalled()
{

     //*** Arrange***    
     SearchCallPersonVM criteria = new SearchCallPersonVM() { FirstName = "Sam" };

    
     // Add Stubs for other DAL methods!    
     callPersonDALHdl.Stub(x => x.DalMethod1(criteria)).IgnoreArguments().Return(100);

     //*** Act ***    
     callPersonBLLHdl.BllMethod1(criteria);

     //*** Assert ***     
     callPersonDALHdl.AssertWasCalled(x => x.DalMethod1(null),a=>a.IgnoreArguments());
}




[Test]

public void BllMethod1_VerifyDalMethod2IsCalled()
{

     //*** Arrange***    
     SearchCallPersonVM criteria = new SearchCallPersonVM() { FirstName = "Mad" };
    
     // Add Stubs for other DAL methods!    
     callPersonDALHdl.Stub(x => x.DalMethod2(criteria)).IgnoreArguments().Return(100);

    
     //*** Act ***    
     callPersonBLLHdl.BllMethod1(criteria);


     //*** Assert ***     
     callPersonDALHdl.AssertWasCalled(x => x.DalMethod2(null), a => a.IgnoreArguments());
}





// Demonstrating how to check for expected exceptions
[Test, ExpectedException(typeof(RulesException))]  // Decorate like this to check for a single specific exception
public void BllMethod1_RulesException()
{

      //*** Arrange***         
      SearchCallPersonVM criteria = new SearchCallPersonVM() { FirstName = "" };
      //*** Act ***    
      callPersonBLLHdl.BllMethod1(criteria);
}




//Demonstrating "With what parameters the dal call was made"
[Test]
public void BllMethod1_TestingDalParamtersWereCorrectlyPassedIn()
{

     //*** Arrange***    
     SearchCallPersonVM criteria = new SearchCallPersonVM() { FirstName = "Sam" };


     // Add Stubs for other DAL methods!    
     callPersonDALHdl.Stub(x => x.DalMethod2(criteria)).IgnoreArguments().Return(100);

    
     //*** Act ***    
     callPersonBLLHdl.BllMethod1(criteria);

     IList<object[]> args = callPersonDALHdl.GetArgumentsForCallsMadeOn(db => db.DalMethod1(Arg<SearchCallPersonVM>.Is.Anything));    


     SearchCallPersonVM finalVal =
          new SearchCallPersonVM();


     if (args != null && args.Count > 0)    
     {
          finalVal = (SearchCallPersonVM)(args[0][0]);
     }

    
     // assert.areequal(obj,obj) is not working well since we did not override the equal method         
     Assert.AreEqual(finalVal.FirstName, "Sam");    
     Assert.AreEqual(finalVal.LastName, "Brown");
}





//Demonstrating "How to check the number of times a method was called"
[Test]
public void BllMethod2_RepeatCalls()
{

     //*** Arrange***    
     SearchCallPersonVM criteria = new SearchCallPersonVM() { FirstName = "Mad" };


     // Add Stubs for other DAL methods!    
     callPersonDALHdl.Stub(x => x.DalMethod2(criteria)).IgnoreArguments().Return(100);



     //*** Act ***    
     callPersonBLLHdl.BllMethod2(criteria);



     //*** Assert ***     
     callPersonDALHdl.AssertWasCalled(c => c.DalMethod1(null), options => options.IgnoreArguments().Repeat.Times(4));
}




[Test]

public void BllMethod3_MultipleRulesException()
{

     //*** Arrange***    
     SearchCallPersonVM criteria = new SearchCallPersonVM(){FirstName = "John"};
     try    
     {
           //*** Act ***         
           callPersonBLLHdl.BllMethod3(criteria);
     }
     catch(RulesException ex)    
     {

          if (ex.GetType() == typeof(RulesException))         
         {
               ErrorInfo[] errors = ((RulesException)ex).Errors.ToArray();
               Assert.AreEqual(errors[0].ErrorMessage,
"Name cannot be John");    
          }
  }



//Get the arguments that were passed into internal DAL method.
[Test]
public void TestMethod1_criteriaWithPropertyOfCtrIdGreaterThan0()
{

     // Test created by powershell on 02/15/2013 14:32:30//*** Arrange***
     StaffProfilesRptVM TestCriteria = new StaffProfilesRptVM() { CtrId = 15 };




     //*** BLL and DAL Stubs ***
     mockSelfTestDALHdl.Stub(x => x.DDLForStaff(TestCriteria)).IgnoreArguments().Return(new List<DDLDispValueCV>(){});



     //*** Act ***
     selfTestBLLHdl.TestMethod1(TestCriteria);

    
     IList<object[]> args = mockSelfTestDALHdl.GetArgumentsForCallsMadeOn(db => db.DDLForStaff(Arg<StaffProfilesRptVM>.Is.Anything));StaffProfilesRptVM finalVal = new StaffProfilesRptVM();


     if (args != null && args.Count > 0)
     {
          finalVal = (StaffProfilesRptVM)(args[0][0]);
     }



      //*** Assert ***


     Assert.AreEqual(finalVal.CtrId, 22);// Even though i set the ctr_id as 15, it should be called with 22, if i entered this if cluase.
     }


}