|
|
|
|
|
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
|
|
|
|
using Proxy;
|
|
|
|
|
|
using Rhino.Mocks;
|
|
|
|
|
|
using System.ComponentModel.Composition;
|
|
|
|
|
|
using System.ComponentModel.Composition.Hosting;
|
|
|
|
|
|
using Util;
|
|
|
|
|
|
|
|
|
|
|
|
namespace MEFDemo.unittest
|
|
|
|
|
|
{
|
|
|
|
|
|
[TestClass]
|
|
|
|
|
|
public class MEFDemoProxyIntegrationTest
|
|
|
|
|
|
{
|
|
|
|
|
|
private CompositionContainer CreateIsolatedContainer(INetwork fakeNetwork = null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (fakeNetwork == null) fakeNetwork = MockRepository.GenerateMock<INetwork>();
|
|
|
|
|
|
//slower, but more robust:
|
|
|
|
|
|
//var catalog = new AggregateCatalog();
|
|
|
|
|
|
//var assemblyDirectory = ".";
|
|
|
|
|
|
//catalog.Catalogs.Add(new DirectoryCatalog(assemblyDirectory));
|
|
|
|
|
|
var catalog = new TypeCatalog(typeof(INetwork), typeof(MachineChecker));
|
|
|
|
|
|
var container = new CompositionContainer(catalog);
|
|
|
|
|
|
container.ComposeExportedValue<INetwork>(fakeNetwork);
|
|
|
|
|
|
return container;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
|
public void Isolate_from_Network()
|
|
|
|
|
|
{
|
|
|
|
|
|
var fakeNetwork = MockRepository.GenerateMock<INetwork>();
|
|
|
|
|
|
var container = CreateIsolatedContainer(fakeNetwork);
|
|
|
|
|
|
|
|
|
|
|
|
Program.Run(container);
|
|
|
|
|
|
|
|
|
|
|
|
fakeNetwork.AssertWasCalled(x => x.IsLocalMachine(Arg<string>.Is.Anything));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
|
public void OnLocalMachine_Run_returns_Local()
|
|
|
|
|
|
{
|
|
|
|
|
|
var fakseLocalMachineNetwork = MockRepository.GenerateMock<INetwork>();
|
|
|
|
|
|
fakseLocalMachineNetwork.Stub(x => x.IsLocalMachine(Arg<string>.Is.Anything)).Return(true);
|
|
|
|
|
|
var container = CreateIsolatedContainer(fakseLocalMachineNetwork);
|
|
|
|
|
|
|
|
|
|
|
|
var result = Program.Run(container);
|
|
|
|
|
|
|
|
|
|
|
|
Assert.IsTrue(result.ToLower().Contains("local"));
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
[TestMethod]
|
|
|
|
|
|
public void OnUnknownMachine_Run_returns_Foreign()
|
|
|
|
|
|
{
|
|
|
|
|
|
var container = CreateIsolatedContainer();
|
|
|
|
|
|
|
|
|
|
|
|
var result = Program.Run(container);
|
|
|
|
|
|
|
|
|
|
|
|
Assert.IsTrue(result.ToLower().Contains("foreign"));
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|