public void SaveChanges_CallsSaveChangesAsyncOnTheContext_WhenCalledWithoutCancellationToken() { // Arrange IContext context = Substitute.For <IContext>(); IAbstractRepositoryFactory <IContext> abstractRepositoryFactory = Substitute.For <IAbstractRepositoryFactory <IContext> >(); UnitOfWork <IContext> unitOfWork = new UnitOfWork <IContext>(context, abstractRepositoryFactory); // Act unitOfWork.SaveChangesAsync(); // Assert context.Received(1).SaveChangesAsync(); }
public void Repository_CallesRepositoryOnTheAbstractRepositoryFactory_IfCalledWithGernericId() { // Arrange IContext context = Substitute.For <IContext>(); IAbstractRepositoryFactory <IContext> abstractRepositoryFactory = Substitute.For <IAbstractRepositoryFactory <IContext> >(); IUnitOfWork unitofWork = new UnitOfWork <IContext>(context, abstractRepositoryFactory); // Act unitofWork.Repository <ConcreteEntityGuid, Guid>(); // Assert abstractRepositoryFactory.Received(1).Repository <ConcreteEntityGuid, Guid>(); }
public void Constructor_ThrowsArgumentNullException_IfAbstractRepositoryFactoryIsNull() { // Arrange IContext context = Substitute.For <IContext>(); IAbstractRepositoryFactory <IContext> abstractRepositoryFactory = default; UnitOfWork <IContext> unitOfWork; ArgumentException argumentException; // Act argumentException = Assert.Throws <ArgumentNullException>(() => unitOfWork = new UnitOfWork <IContext>(context, abstractRepositoryFactory)); // Assert Assert.NotNull(argumentException); }
public void Equals_ReturnsFalse_WhenOtherObjectIsDifferentType() { // Arrange IContext contextL = Substitute.For <IContext>(); IAbstractRepositoryFactory <IContext> abstractRepositoryFactoryL = Substitute.For <IAbstractRepositoryFactory <IContext> >(); object unitofWorkL = new UnitOfWork <IContext>(contextL, abstractRepositoryFactoryL); object unitOfWorkR = "Not a UnitOfWork Type ;)"; bool actual; // Act actual = unitofWorkL.Equals(unitOfWorkR); // Assert Assert.False(actual); }
public void EqualEqual_ReturnsFalse_WhenRightIsNull() { // Arrange IContext contextL = Substitute.For <IContext>(); IAbstractRepositoryFactory <IContext> abstractRepositoryFactoryL = Substitute.For <IAbstractRepositoryFactory <IContext> >(); UnitOfWork <IContext> unitofWorkL = new UnitOfWork <IContext>(contextL, abstractRepositoryFactoryL); UnitOfWork <IContext> unitOfWorkR = default; bool actual; // Act actual = unitofWorkL == unitOfWorkR; // Assert Assert.False(actual); }
public void BangEqual_ReturnsFalse_IfTheUnitOfWorksAreEqual() { // Arrange IContext contextL = Substitute.For <IContext>(); IAbstractRepositoryFactory <IContext> abstractRepositoryFactoryL = Substitute.For <IAbstractRepositoryFactory <IContext> >(); UnitOfWork <IContext> unitofWorkL = new UnitOfWork <IContext>(contextL, abstractRepositoryFactoryL); UnitOfWork <IContext> unitOfWorkR = unitofWorkL; bool actual; // Act actual = unitofWorkL != unitOfWorkR; // Assert Assert.False(actual); }
public void Equals_ReturnsTrue_WhenReferencesAreEqual() { // Arrange IContext contextL = Substitute.For <IContext>(); IAbstractRepositoryFactory <IContext> abstractRepositoryFactoryL = Substitute.For <IAbstractRepositoryFactory <IContext> >(); UnitOfWork <IContext> unitofWorkL = new UnitOfWork <IContext>(contextL, abstractRepositoryFactoryL); UnitOfWork <IContext> unitOfWorkR = unitofWorkL; bool actual; // Act actual = unitofWorkL.Equals(unitOfWorkR); // Assert Assert.True(actual); }
public void BangEqual_ReturnsTrue_WhenLeftIsNull() { // Arrange IContext contextR = Substitute.For <IContext>(); IAbstractRepositoryFactory <IContext> abstractRepositoryFactoryR = Substitute.For <IAbstractRepositoryFactory <IContext> >(); UnitOfWork <IContext> unitOfWorkR = new UnitOfWork <IContext>(contextR, abstractRepositoryFactoryR); UnitOfWork <IContext> unitofWorkL = default; bool actual; // Act actual = unitofWorkL != unitOfWorkR; // Assert Assert.True(actual); }
public void EqualEqual_ReturnsFalse_WhenContextAbstractRepositoryFactoryAndReferencesAreDifferent() { // Arrange IContext contextL = Substitute.For <IContext>(); IAbstractRepositoryFactory <IContext> abstractRepositoryFactoryL = Substitute.For <IAbstractRepositoryFactory <IContext> >(); UnitOfWork <IContext> unitofWorkL = new UnitOfWork <IContext>(contextL, abstractRepositoryFactoryL); IContext contextR = Substitute.For <IContext>(); IAbstractRepositoryFactory <IContext> abstractRepositoryFactoryR = Substitute.For <IAbstractRepositoryFactory <IContext> >(); UnitOfWork <IContext> unitOfWorkR = new UnitOfWork <IContext>(contextR, abstractRepositoryFactoryR); bool actual; // Act actual = unitofWorkL == unitOfWorkR; // Assert Assert.False(actual); }
public void Equals_ReturnsFalse_WhenObjectReferencesAreDifferent() { // Arrange IContext contextL = Substitute.For <IContext>(); IAbstractRepositoryFactory <IContext> abstractRepositoryFactoryL = Substitute.For <IAbstractRepositoryFactory <IContext> >(); object unitofWorkL = new UnitOfWork <IContext>(contextL, abstractRepositoryFactoryL); IContext contextR = contextL; IAbstractRepositoryFactory <IContext> abstractRepositoryFactoryR = abstractRepositoryFactoryL; object unitOfWorkR = new UnitOfWork <IContext>(contextR, abstractRepositoryFactoryR); bool actual; // Act actual = unitofWorkL.Equals(unitOfWorkR); // Assert Assert.False(actual); }
public void BangEqual_ReturnsTrue_WhenReferencesAreDifferent() { // Arrange IContext contextL = Substitute.For <IContext>(); IAbstractRepositoryFactory <IContext> abstractRepositoryFactoryL = Substitute.For <IAbstractRepositoryFactory <IContext> >(); UnitOfWork <IContext> unitofWorkL = new UnitOfWork <IContext>(contextL, abstractRepositoryFactoryL); IContext contextR = contextL; IAbstractRepositoryFactory <IContext> abstractRepositoryFactoryR = abstractRepositoryFactoryL; UnitOfWork <IContext> unitOfWorkR = new UnitOfWork <IContext>(contextR, abstractRepositoryFactoryR); bool actual; // Act actual = unitofWorkL != unitOfWorkR; // Assert Assert.True(actual); }
public void GetHashCode_ReturnsTheSameHashCodes_IfReferencesAreTheSame() { // Arrange IContext contextL = Substitute.For <IContext>(); IAbstractRepositoryFactory <IContext> abstractRepositoryFactoryL = Substitute.For <IAbstractRepositoryFactory <IContext> >(); UnitOfWork <IContext> unitofWorkL = new UnitOfWork <IContext>(contextL, abstractRepositoryFactoryL); int hashCodeL; UnitOfWork <IContext> unitOfWorkR = unitofWorkL; int hashCodeR; bool theSameHashCode; // Act hashCodeL = unitofWorkL.GetHashCode(); hashCodeR = unitOfWorkR.GetHashCode(); theSameHashCode = hashCodeL == hashCodeR; // Assert Assert.True(theSameHashCode); }
public void GetHashCode_ReturnsDifferentHashCodes_IfAbstractRepositoryFactoryAndReferencesAreDifferent() { // Arrange IContext contextL = Substitute.For <IContext>(); IAbstractRepositoryFactory <IContext> abstractRepositoryFactoryL = Substitute.For <IAbstractRepositoryFactory <IContext> >(); UnitOfWork <IContext> unitofWorkL = new UnitOfWork <IContext>(contextL, abstractRepositoryFactoryL); int hashCodeL; IContext contextR = contextL; IAbstractRepositoryFactory <IContext> abstractRepositoryFactoryR = Substitute.For <IAbstractRepositoryFactory <IContext> >(); UnitOfWork <IContext> unitOfWorkR = new UnitOfWork <IContext>(contextR, abstractRepositoryFactoryR); int hashCodeR; bool theSameHashCode; // Act hashCodeL = unitofWorkL.GetHashCode(); hashCodeR = unitOfWorkR.GetHashCode(); theSameHashCode = hashCodeL == hashCodeR; // Assert Assert.False(theSameHashCode); }
public bool Equals(IAbstractRepositoryFactory <TContext> x, IAbstractRepositoryFactory <TContext> y) { if (x is null) { return(false); } if (y is null) { return(false); } if (!ReferenceEquals(x, y)) { return(false); } if (GetHashCode(x) != GetHashCode(y)) { return(false); } return(true); }
public int GetHashCode(IAbstractRepositoryFactory <TContext> obj) => obj is null ? 0 : RuntimeHelpers.GetHashCode(obj);
public LookupDataRepository(IAbstractRepositoryFactory abstractRepositoryFactory, ICacheFactory cacheFactory) { _abstractRepositoryFactory = abstractRepositoryFactory; _cache = cacheFactory.Create(); }
public UnitOfWork(TContext context, IAbstractRepositoryFactory <TContext> abstractRepositoryFactory) { AbstractRepositoryFactory = abstractRepositoryFactory ?? throw new ArgumentNullException(nameof(abstractRepositoryFactory)); Context = context ?? throw new ArgumentNullException(nameof(context)); }