or
/// <
summary
>
/// Represents the Automatic Warehouse add in
/// </
summary
>
/// /// <
seealso
cref
=
""
/>
public class AutomaticWarehouseKpiAddInn: IKeyPerformanceIndicatorAddIn
{
/// <
summary
>
/// Gets or sets the configuration extension service.
/// </
summary
>
[Dependency]
public IConfigurationExtensionService ConfigurationExtensionService { get; set; }
public void Initialize()
{
ConfigurationExtensionService.RegisterExtension(typeof(AutomaticWarehouseCommanderAddInConfiguration),
new AutomaticWarehouseCommanderConveyorConfigConverter());
}
}
[TestMethod]
public void InitializeRegisterExtensionCorrectly()
{
IConfigurationExtensionService configurationExtensionService = Mock.Create<
ConverterConfigurationBuilder
>();
AutomaticWarehouseKpiAddInn automaticWarehouseKpiAddInn = new AutomaticWarehouseKpiAddInn
{
ConfigurationExtensionService = configurationExtensionService
};
Mock.Arrange(() => configurationExtensionService.RegisterExtension(null, null)).MustBeCalled();
automaticWarehouseKpiAddInn.Initialize();
Mock.Assert(configurationExtensionService);
}
[TestClass]
public class MsCorlibFixture
{
static MsCorlibFixture()
{
Mock.Replace(() => Stopwatch.GetTimestamp()).In<
MsCorlibFixture
>(x => x.ShouldAssertCustomValueForDateTime());
}
[TestMethod]
public void ShouldAssertCustomValueForDateTime()
{
Mock.Arrange(() => Stopwatch.GetTimestamp()).Returns(100);
var now = Stopwatch.GetTimestamp()
Assert.AreEqual(100, now);
}
}
public void SaveChanges()
{
try
{
//some code here
}
catch (MyException dbEValEx)
{
RaiseValidationError(dbEValEx);
}
catch (MySecondException dbUpdateException)
{
RaiseUpdateException(dbUpdateException);
}
}
Any ideas of how to do it?//Class to be tested
var fooUnitOfWork = Mock.Create<
UnitOfWork
>(Behavior.CallOriginal);
//Mock private method
Mock.NonPublic.Arrange(fooUnitOfWork, "RaiseValidationError", dbEntityValidationException).DoNothing().MustBeCalled();
//Execute method to test
fooUnitOfWork.SaveChanges();Mock.Arrange(() => fooUnitOfWork.SaveChanges()).Throws(new DbEntityValidationException());
//Make sure that the RaiseDBValidationError is called
Mock.Assert(fooUnitOfWork);
I am implementing the test like this:public static class UnitOfWorkExtensions
{
public static void SetSubCategory(this IOperationTracer tracer, string subCategory)
{
UnitOfWork unitOfWork = UnitOfWork.Current;
if (unitOfWork != null && unitOfWork.CorrelationId != null)
{
tracer.SetSubCategory(UnitOfWork.Current.CorrelationId, subCategory);
}
}
}
The test is failing and I don't have a clue why[TestMethod]
public void SetSubCategoryTest()
{
Mock.SetupStatic(typeof(UnitOfWorkExtensions));
IOperationTracer operationTracer = Mock.Create<
OperationTracer
>();
Mock.Arrange(() => operationTracer.SetSubCategory(null, "subCategory")).DoNothing().OccursNever();
UnitOfWorkExtensions.SetSubCategory(operationTracer, "subCategory");
Mock.Assert(operationTracer);
UnitOfWork.Current = new UnitOfWork();
UnitOfWork.Current.CorrelationId = "11111";
Mock.Arrange(() => operationTracer.SetSubCategory(null, "subCategory")).DoNothing().OccursOnce();
UnitOfWorkExtensions.SetSubCategory(operationTracer, "subCategory");
Mock.Assert(operationTracer);
}
var entitiesMock = Mock.Create<Entities>();
UserAccount userAccount =
new
UserAccount()
{
Username =
"UserName"
,
Password =
"Password"
};
// Arrange
List<UserAccount> userAccounts =
new
List<UserAccount>();
Mock.Arrange(() => entitiesMock.AddToUserAccounts(Arg.IsAny<UserAccount>())).DoInstead(()=>userAccounts.Add(userAccount));
// Act
entitiesMock.AddToUserAccounts(userAccount);
// Assert
Assert.AreEqual(1, userAccounts.Count);
Assert.AreSame(userAccount, userAccounts[0]);
Authentication authentication =
new
Authentication(entitiesMock);
UserAccount authenticatedUserAccount=authentication.Authenticate(userAccount.Username, userAccount.Password, Authentication.PasswordFormat.PlainText);
Assert.AreEqual(userAccount.Username, authenticatedUserAccount.Username);
Mock.Arrange(() => myService.Foo(Arg.AnyGuid))
.DoInstead(
new
System.Action<System.Guid>(Console.WriteLine));
Mock.Assert(() => myService.Foo(Arg.AnyGuid), Occurs.Once());
myService.Foo(Arg.Matches<Guid>(g => g != Guid.Empty))