public void GetCalculator_UnknownPassed_ReturnsNull() { var factory = new ParkingChargeCalculatorFactory(); var result = factory.GetCalculator(ParkingChargeType.Unknown); Assert.IsNull(result); }
public void GetCalculator_LongPassed_ReturnsLongStayCalculator() { var factory = new ParkingChargeCalculatorFactory(); var result = factory.GetCalculator(ParkingChargeType.LongStay); Assert.IsInstanceOfType(result, typeof(LongStayParkingChargeCalculator)); }
public void Resolving_IParkingChargeCalculator_from_the_ParkingChargeCalculatorsFactory_with_unconfigured_ChargeType_throws_NotImplementedException() { var serviceProviderMock = new Mock <IServiceProvider>(); var factory = new ParkingChargeCalculatorFactory(serviceProviderMock.Object); var invalidChargeType = (ChargeType)Enum.Parse(typeof(ChargeType), "-1"); factory.Invoking(f => f.ResolveCalculator(invalidChargeType)) .Should() .Throw <NotImplementedException>(); }
public void Resolving_IParkingChargeCalculator_from_the_ParkingChargeCalculatorsFactory_works_for_configured_ChargeTypes(ChargeType chargeType) { var serviceProviderMock = new Mock <IServiceProvider>(); serviceProviderMock.Setup(sp => sp.GetService(typeof(ShortStayParkingChargeCalculator))).Returns(new ShortStayParkingChargeCalculator()); serviceProviderMock.Setup(sp => sp.GetService(typeof(LongStayParkingChargeCalculator))).Returns(new LongStayParkingChargeCalculator()); var factory = new ParkingChargeCalculatorFactory(serviceProviderMock.Object); var chargeTypeCalculator = factory.ResolveCalculator(chargeType); chargeTypeCalculator.Should().NotBeNull(); chargeTypeCalculator.ChargeType.Should().Be(chargeType); }