/// <summary> /// Возвращает новое значение, если переданное значение отличается и не пустая строка. /// <para> /// В зависимости от переданного поведения в принимаемой модели будет возвращено соответствующее значение. /// </para> /// </summary> /// <param name="targetProp">Исходное значение, которое будет обновлено.</param> /// <param name="value">Принимаемая модель представления для обновления свойства сущности.</param> /// <returns></returns> public static string Update(string targetProp, ModelPropertyPutViewModel value) { if (value?.Value == null) { return(targetProp); } if (targetProp == null) { return(value.Value); } if (targetProp.Equals(value.Value) && value.Behavior == ModelPropertyPutBehavior.Override) { return(targetProp); } if (value.CheckExistingSubstring && targetProp.Contains(value.Value)) { return(targetProp); } return(value.Behavior switch { ModelPropertyPutBehavior.Override => value.Value, ModelPropertyPutBehavior.Append when !value.AppendWithNewLine => targetProp + value.Value, ModelPropertyPutBehavior.Append when value.AppendWithNewLine => AppendLine(targetProp, value.Value), _ => throw new ArgumentOutOfRangeException() });
public void ShouldProperlyCheckExistingSubstring() { var initialStr = "___test___"; var putModel = new ModelPropertyPutViewModel { Value = "test", CheckExistingSubstring = true, Behavior = ModelPropertyPutBehavior.Append }; var updatedStr = ModelHelper.Update(initialStr, putModel); Assert.Equal(initialStr, updatedStr); }
public void ShouldProperlyAppendWithNewLine() { var initialStr = "test1"; var putModel = new ModelPropertyPutViewModel { Value = "test", AppendWithNewLine = true, Behavior = ModelPropertyPutBehavior.Append }; var updatedStr = ModelHelper.Update(initialStr, putModel); Assert.Equal(initialStr + Environment.NewLine + putModel.Value, updatedStr); }
public void ShouldProperlyAppendStringValue(int seed) { var sporadic = new Random(seed); var initialStr = sporadic.GetRandomName(); var putModel = new ModelPropertyPutViewModel { Value = sporadic.GetRandomName(), Behavior = ModelPropertyPutBehavior.Append }; var updatedStr = ModelHelper.Update(initialStr, putModel); Assert.Equal(initialStr + putModel.Value, updatedStr); }