public void Patch_OnArrayObject_Fails() { // Arrange var targetObject = new[] { 20, 30 }; var listAdapter = new ListAdapter(); var options = new JsonSerializerOptions(); // Act var addStatus = listAdapter.TryAdd(targetObject, typeof(int[]), "0", options, "40", out var message); // Assert Assert.False(addStatus); Assert.Equal($"The type '{targetObject.GetType().FullName}' which is an array is not supported for json patch operations as it has a fixed size.", message); }
public void Patch_OnArrayObject_Fails() { // Arrange var resolver = new DefaultContractResolver(); var targetObject = new[] { 20, 30 }; var listAdapter = new ListAdapter(); // Act var addStatus = listAdapter.TryAdd(targetObject, "0", resolver, "40", out var message); // Assert Assert.False(addStatus); Assert.Equal($"The type '{targetObject.GetType().FullName}' which is an array is not supported for json patch operations as it has a fixed size.", message); }
public void Add_Appends_AtTheEnd(List <int> targetObject, List <int> expected) { // Arrange var listAdapter = new ListAdapter(); var options = new JsonSerializerOptions(); // Act var addStatus = listAdapter.TryAdd(targetObject, typeof(List <int>), "-", options, "20", out var message); // Assert Assert.True(addStatus); Assert.True(string.IsNullOrEmpty(message), "Expected no error message"); Assert.Equal(expected.Count, targetObject.Count); Assert.Equal(expected, targetObject); }
public void Add_KeepsObjectReference(IList targetObject, object value, string position, IList expected) { // Arrange var resolver = new DefaultContractResolver(); var listAdapter = new ListAdapter(); // Act var addStatus = listAdapter.TryAdd(targetObject, position, resolver, value, out var message); // Assert Assert.True(addStatus); Assert.True(string.IsNullOrEmpty(message), "Expected no error message"); Assert.Equal(expected.Count, targetObject.Count); Assert.Equal(expected, targetObject); }
public void Add_Appends_AtTheEnd(List <int> targetObject, List <int> expected) { // Arrange var resolver = new DefaultContractResolver(); var listAdapter = new ListAdapter(); // Act var addStatus = listAdapter.TryAdd(targetObject, "-", resolver, "20", out var message); // Assert Assert.True(addStatus); Assert.True(string.IsNullOrEmpty(message), "Expected no error message"); Assert.Equal(expected.Count, targetObject.Count); Assert.Equal(expected, targetObject); }
public void Add_KeepsObjectReference(IList targetObject, object value, string position, IList expected) { // Arrange var listAdapter = new ListAdapter(); var options = new JsonSerializerOptions(); // Act var addStatus = listAdapter.TryAdd(targetObject, typeof(IList), position, options, value, out var message); // Assert Assert.True(addStatus); Assert.True(string.IsNullOrEmpty(message), "Expected no error message"); Assert.Equal(expected.Count, targetObject.Count); Assert.Equal(expected, targetObject); }
public void Patch_WithInvalidPositionFormat_Fails(string position) { // Arrange var targetObject = new List <string> { "James", "Mike" }; var listAdapter = new ListAdapter(); var options = new JsonSerializerOptions(); // Act var addStatus = listAdapter.TryAdd(targetObject, typeof(List <string>), position, options, "40", out var message); // Assert Assert.False(addStatus); Assert.Equal($"The path segment '{position}' is invalid for an array index.", message); }
public void Add_NonCompatibleType_Fails() { // Arrange var targetObject = new List <int> { 10, 20 }; var listAdapter = new ListAdapter(); var options = new JsonSerializerOptions(); // Act var addStatus = listAdapter.TryAdd(targetObject, typeof(List <int>), "-", options, "James", out var message); // Assert Assert.False(addStatus); Assert.Equal("The value 'James' is invalid for target location.", message); }
public void Add_WithOutOfBoundsIndex_Fails(string position) { // Arrange var targetObject = new List <string> { "James", "Mike" }; var listAdapter = new ListAdapter(); var options = new JsonSerializerOptions(); // Act var addStatus = listAdapter.TryAdd(targetObject, typeof(List <string>), position, options, "40", out var message); // Assert Assert.False(addStatus); Assert.Equal($"The index value provided by path segment '{position}' is out of bounds of the array size.", message); }
public void Patch_WithInvalidPositionFormat_Fails(string position) { // Arrange var resolver = new DefaultContractResolver(); var targetObject = new List <string>() { "James", "Mike" }; var listAdapter = new ListAdapter(); // Act var addStatus = listAdapter.TryAdd(targetObject, position, resolver, "40", out var message); // Assert Assert.False(addStatus); Assert.Equal($"The path segment '{position}' is invalid for an array index.", message); }
public void Add_WithOutOfBoundsIndex_Fails(string position) { // Arrange var resolver = new DefaultContractResolver(); var targetObject = new List <string>() { "James", "Mike" }; var listAdapter = new ListAdapter(); // Act var addStatus = listAdapter.TryAdd(targetObject, position, resolver, "40", out var message); // Assert Assert.False(addStatus); Assert.Equal($"The index value provided by path segment '{position}' is out of bounds of the array size.", message); }
public void Patch_OnNonGenericListObject_Fails() { // Arrange var resolver = new DefaultContractResolver(); var targetObject = new ArrayList(); targetObject.Add(20); targetObject.Add(30); var listAdapter = new ListAdapter(); // Act var addStatus = listAdapter.TryAdd(targetObject, "-", resolver, "40", out var message); // Assert Assert.False(addStatus); Assert.Equal($"The type '{targetObject.GetType().FullName}' which is a non generic list is not supported for json patch operations. Only generic list types are supported.", message); }
public void Add_NonCompatibleType_Fails() { // Arrange var resolver = new DefaultContractResolver(); var targetObject = new List <int>() { 10, 20 }; var listAdapter = new ListAdapter(); // Act var addStatus = listAdapter.TryAdd(targetObject, "-", resolver, "James", out var message); // Assert Assert.False(addStatus); Assert.Equal("The value 'James' is invalid for target location.", message); }
public void Patch_OnNonGenericListObject_Fails() { // Arrange var targetObject = new ArrayList { 20, 30 }; var listAdapter = new ListAdapter(); var options = new JsonSerializerOptions(); // Act var addStatus = listAdapter.TryAdd(targetObject, typeof(ArrayList), "-", options, "40", out var message); // Assert Assert.False(addStatus); Assert.Equal($"The type '{targetObject.GetType().FullName}' which is a non generic list is not supported for json patch operations. Only generic list types are supported.", message); }
public void Add_NullObject_ToReferenceTypeListWorks() { // Arrange var listAdapter = new ListAdapter(); var targetObject = new List <string> { "James", "Mike" }; var options = new JsonSerializerOptions(); // Act var addStatus = listAdapter.TryAdd(targetObject, typeof(List <string>), "-", options, null, out var message); // Assert Assert.True(addStatus); Assert.True(string.IsNullOrEmpty(message), "Expected no error message"); Assert.Equal(3, targetObject.Count); Assert.Equal(new List <string> { "James", "Mike", null }, targetObject); }
public void Add_WithIndexSameAsNumberOfElements_Works() { // Arrange var targetObject = new List <string> { "James", "Mike" }; var listAdapter = new ListAdapter(); var position = targetObject.Count.ToString(); var options = new JsonSerializerOptions(); // Act var addStatus = listAdapter.TryAdd(targetObject, typeof(List <string>), position, options, "Rob", out var message); // Assert Assert.Null(message); Assert.True(addStatus); Assert.Equal(3, targetObject.Count); Assert.Equal(new List <string> { "James", "Mike", "Rob" }, targetObject); }
public void Add_NullObject_ToReferenceTypeListWorks() { // Arrange var resolver = new DefaultContractResolver(); var listAdapter = new ListAdapter(); var targetObject = new List <string>() { "James", "Mike" }; // Act var addStatus = listAdapter.TryAdd(targetObject, "-", resolver, value: null, errorMessage: out var message); // Assert Assert.True(addStatus); Assert.True(string.IsNullOrEmpty(message), "Expected no error message"); Assert.Equal(3, targetObject.Count); Assert.Equal(new List <string>() { "James", "Mike", null }, targetObject); }
public void Add_CompatibleTypeWorks() { // Arrange var sDto = new SimpleObject(); var iDto = new InheritedObject(); var targetObject = new List <SimpleObject> { sDto }; var listAdapter = new ListAdapter(); var options = new JsonSerializerOptions(); // Act var addStatus = listAdapter.TryAdd(targetObject, typeof(List <SimpleObject>), "-", options, iDto, out var message); // Assert Assert.True(addStatus); Assert.True(string.IsNullOrEmpty(message), "Expected no error message"); Assert.Equal(2, targetObject.Count); Assert.Equal(new List <SimpleObject> { sDto, iDto }, targetObject); }
public void Add_WithIndexSameAsNumberOfElements_Works() { // Arrange var resolver = new DefaultContractResolver(); var targetObject = new List <string>() { "James", "Mike" }; var listAdapter = new ListAdapter(); var position = targetObject.Count.ToString(CultureInfo.InvariantCulture); // Act var addStatus = listAdapter.TryAdd(targetObject, position, resolver, "Rob", out var message); // Assert Assert.Null(message); Assert.True(addStatus); Assert.Equal(3, targetObject.Count); Assert.Equal(new List <string>() { "James", "Mike", "Rob" }, targetObject); }
public void Add_CompatibleTypeWorks() { // Arrange var sDto = new SimpleObject(); var iDto = new InheritedObject(); var resolver = new DefaultContractResolver(); var targetObject = new List <SimpleObject>() { sDto }; var listAdapter = new ListAdapter(); // Act var addStatus = listAdapter.TryAdd(targetObject, "-", resolver, iDto, out var message); // Assert Assert.True(addStatus); Assert.True(string.IsNullOrEmpty(message), "Expected no error message"); Assert.Equal(2, targetObject.Count); Assert.Equal(new List <SimpleObject>() { sDto, iDto }, targetObject); }