Created
October 13, 2014 11:02
-
-
Save stevenh77/cf17c4e5624ae3d56727 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Collections.Generic; | |
using System.ComponentModel.Composition; | |
using CarRental.Business.Bootstrapper; | |
using CarRental.Business.Entities; | |
using CarRental.Data.Contracts; | |
using Core.Common.Contracts; | |
using Core.Common.Core; | |
using Microsoft.VisualStudio.TestTools.UnitTesting; | |
using Moq; | |
namespace CarRental.Data.Tests | |
{ | |
[TestClass] | |
public class DataLayerTests | |
{ | |
[TestInitialize] | |
public void Initialize() | |
{ | |
ObjectBase.Container = MEFLoader.Init(); | |
} | |
[TestMethod] | |
public void test_repository_usage() | |
{ | |
RepositoryTestClass repositoryTest = new RepositoryTestClass(); | |
IEnumerable<Car> cars = repositoryTest.GetCars(); | |
Assert.IsTrue(cars != null); | |
} | |
[TestMethod] | |
public void test_repository_factory_usage() | |
{ | |
RepositoryFactoryTestClass factoryTest = new RepositoryFactoryTestClass(); | |
IEnumerable<Car> cars = factoryTest.GetCars(); | |
Assert.IsTrue(cars != null); | |
} | |
[TestMethod] | |
public void test_repository_mocking() | |
{ | |
List<Car> cars = new List<Car>() | |
{ | |
new Car() { CarId = 1, Description = "Mustang" }, | |
new Car() { CarId = 2, Description = "Corvette" } | |
}; | |
Mock<ICarRepository> mockCarRepository = new Mock<ICarRepository>(); | |
mockCarRepository.Setup(obj => obj.Get()).Returns(cars); | |
RepositoryTestClass repositoryTest = new RepositoryTestClass(mockCarRepository.Object); | |
IEnumerable<Car> ret = repositoryTest.GetCars(); | |
Assert.IsTrue(ret == cars); | |
} | |
[TestMethod] | |
public void test_factory_mocking1() | |
{ | |
List<Car> cars = new List<Car>() | |
{ | |
new Car() { CarId = 1, Description = "Mustang" }, | |
new Car() { CarId = 2, Description = "Corvette" } | |
}; | |
Mock<IDataRepositoryFactory> mockDataRepository = new Mock<IDataRepositoryFactory>(); | |
mockDataRepository.Setup(obj => obj.GetDataRepository<ICarRepository>().Get()).Returns(cars); | |
RepositoryFactoryTestClass factoryTest = new RepositoryFactoryTestClass(mockDataRepository.Object); | |
IEnumerable<Car> ret = factoryTest.GetCars(); | |
Assert.IsTrue(ret == cars); | |
} | |
[TestMethod] | |
public void test_factory_mocking2() | |
{ | |
List<Car> cars = new List<Car>() | |
{ | |
new Car() { CarId = 1, Description = "Mustang" }, | |
new Car() { CarId = 2, Description = "Corvette" } | |
}; | |
Mock<ICarRepository> mockCarRepository = new Mock<ICarRepository>(); | |
mockCarRepository.Setup(obj => obj.Get()).Returns(cars); | |
Mock<IDataRepositoryFactory> mockDataRepository = new Mock<IDataRepositoryFactory>(); | |
mockDataRepository.Setup(obj => obj.GetDataRepository<ICarRepository>()).Returns(mockCarRepository.Object); | |
RepositoryFactoryTestClass factoryTest = new RepositoryFactoryTestClass(mockDataRepository.Object); | |
IEnumerable<Car> ret = factoryTest.GetCars(); | |
Assert.IsTrue(ret == cars); | |
} | |
} | |
public class RepositoryTestClass | |
{ | |
public RepositoryTestClass() | |
{ | |
ObjectBase.Container.SatisfyImportsOnce(this); | |
} | |
public RepositoryTestClass(ICarRepository carRepository) | |
{ | |
_CarRepository = carRepository; | |
} | |
[Import] | |
ICarRepository _CarRepository; | |
public IEnumerable<Car> GetCars() | |
{ | |
IEnumerable<Car> cars = _CarRepository.Get(); | |
return cars; | |
} | |
} | |
public class RepositoryFactoryTestClass | |
{ | |
public RepositoryFactoryTestClass() | |
{ | |
ObjectBase.Container.SatisfyImportsOnce(this); | |
} | |
public RepositoryFactoryTestClass(IDataRepositoryFactory dataRepositoryFactory) | |
{ | |
_DataRepositoryFactory = dataRepositoryFactory; | |
} | |
[Import] | |
IDataRepositoryFactory _DataRepositoryFactory; | |
public IEnumerable<Car> GetCars() | |
{ | |
ICarRepository carRepository = _DataRepositoryFactory.GetDataRepository<ICarRepository>(); | |
IEnumerable<Car> cars = carRepository.Get(); | |
return cars; | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment