public void UniqueIndexExceptionIsRecognized() { // --- Arrange var child1 = new ChildRecord { Name = "Child1", Value = 1 }; var child2 = new ChildRecord { Name = "Child2", Value = 1 }; // --- Act UniqueIndexViolationException exCaught = null; try { using (var ctx = DataAccessFactory.CreateContext <ITestDataOperations>()) { ctx.InsertChild(child1); ctx.InsertChild(child2); } } catch (UniqueIndexViolationException ex) { exCaught = ex; } // --- Assert // ReSharper disable once PossibleNullReferenceException exCaught.TableName.ShouldEqual("dbo.Child"); exCaught.IndexName.ShouldEqual("IX_Child_Value"); }
public void UniqueIndexViolationException_Test() { var error = new UniqueIndexViolationError { IndexName = "Name", ViolationMessage = "ViolationMessage", IndexFields = new MobileList<string> { "s", "s1" } }; var exception = new UniqueIndexViolationException(new MobileObservableCollection<UniqueIndexViolationError> { error }); var uniqueIndexError = JsonConvert.DeserializeObject<MobileList<UniqueIndexViolationError>>(exception.Message, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }); var element = uniqueIndexError.FirstOrDefault(); Assert.IsFalse(string.IsNullOrWhiteSpace(exception.Message)); Assert.AreEqual(error.IndexName, element.IndexName); Assert.AreEqual(error.ViolationMessage, element.ViolationMessage); Assert.AreEqual(error.IndexFields.Count, element.IndexFields.Count); }