public void GetStandardValue_WithNonLayoutField_DoesNotCallLayoutValueProvider() { // Arrange var innerProvider = Substitute.For<StandardValuesProvider>(); var settings = TestUtil.CreateFakeSettings(); var layoutProvider = Substitute.For<IBaseLayoutValueProvider>(); var validator = Substitute.For<IBaseLayoutValidator>(); var log = Substitute.For<ILog>(); var provider = new BaseLayoutStandardValuesProvider(innerProvider, settings, layoutProvider, validator, log); var field = MasterFakesFactory.CreateFakeEmptyField(); // Act var result = provider.GetStandardValue(field); // Assert layoutProvider.DidNotReceive().GetBaseLayoutValue(Arg.Any<Item>()); }
public void GetStandardValue_WithNonLayoutField_ReturnsValueFromInnerProvider() { // Arrange var layoutProvider = Substitute.For<IBaseLayoutValueProvider>(); var innerProviderValue = "Standard value from inner provider"; var innerProvider = Substitute.For<StandardValuesProvider>(); var settings = TestUtil.CreateFakeSettings(); var validator = Substitute.For<IBaseLayoutValidator>(); var log = Substitute.For<ILog>(); innerProvider.GetStandardValue(Arg.Any<Field>()).Returns(innerProviderValue); var provider = new BaseLayoutStandardValuesProvider(innerProvider, settings, layoutProvider, validator, log); var field = MasterFakesFactory.CreateFakeEmptyField(); // Act var result = provider.GetStandardValue(field); // Assert Assert.Equal(innerProviderValue, result); }
public void GetStandardValue_WhenLayoutProviderThrowsException_LogsErrorAndReturnsValueFromInnerProvider() { // Arrange var ex = new Exception("Something bad happened."); var layoutProvider = Substitute.For<IBaseLayoutValueProvider>(); layoutProvider.GetBaseLayoutValue(Arg.Any<Item>()).Throws(ex); var innerProviderValue = "Standard value from inner provider"; var innerProvider = Substitute.For<StandardValuesProvider>(); innerProvider.GetStandardValue(Arg.Any<Field>()).Returns(innerProviderValue); var validator = Substitute.For<IBaseLayoutValidator>(); validator.ItemSupportsBaseLayouts(Arg.Any<Item>()).Returns(true); validator.HasCircularBaseLayoutReference(Arg.Any<Item>()).Returns(false); var settings = TestUtil.CreateFakeSettings(); var log = Substitute.For<ILog>(); var provider = new BaseLayoutStandardValuesProvider(innerProvider, settings, layoutProvider, validator, log); var field = MasterFakesFactory.CreateFakeLayoutField(); // Act var result = provider.GetStandardValue(field); // Assert log.Received().Error(ex, Arg.Any<string>()); Assert.Equal(innerProviderValue, result); }
public void GetStandardValue_WithFinalLayoutFieldAndEmptyLayoutValue_ReturnsValueFromInnerProvider() { // Arrange var layoutProvider = Substitute.For<IBaseLayoutValueProvider>(); layoutProvider.GetBaseLayoutValue(Arg.Any<Item>()).Returns(string.Empty); var innerProviderValue = "Standard value from inner provider"; var innerProvider = Substitute.For<StandardValuesProvider>(); innerProvider.GetStandardValue(Arg.Any<Field>()).Returns(innerProviderValue); var settings = TestUtil.CreateFakeSettings(); var validator = Substitute.For<IBaseLayoutValidator>(); validator.ItemSupportsBaseLayouts(Arg.Any<Item>()).Returns(true); validator.HasCircularBaseLayoutReference(Arg.Any<Item>()).Returns(false); var log = Substitute.For<ILog>(); var provider = new BaseLayoutStandardValuesProvider(innerProvider, settings, layoutProvider, validator, log); var field = MasterFakesFactory.CreateFakeFinalLayoutField(); // Act var result = provider.GetStandardValue(field); // Assert Assert.Equal(innerProviderValue, result); }
public void GetStandardValue_WithAlwaysCheckForCircularReferenceTrueAndFinalLayoutFieldFromItemWithCircularReference_CallsLogWarn() { // Arrange var layoutProvider = Substitute.For<IBaseLayoutValueProvider>(); var innerProvider = Substitute.For<StandardValuesProvider>(); var settings = TestUtil.CreateFakeSettings(null, true); var validator = Substitute.For<IBaseLayoutValidator>(); validator.HasCircularBaseLayoutReference(Arg.Any<Item>()).Returns(true); validator.ItemSupportsBaseLayouts(Arg.Any<Item>()).Returns(true); var log = Substitute.For<ILog>(); var provider = new BaseLayoutStandardValuesProvider(innerProvider, settings, layoutProvider, validator, log); var field = MasterFakesFactory.CreateFakeFinalLayoutField(); // Act var result = provider.GetStandardValue(field); // Assert log.ReceivedWithAnyArgs().Warn(Arg.Any<string>()); }