public static void ObjectsAreEqual <T>(Expression <Func <string> > json, Expression <Func <T> > object2) where T : class { var object1 = System.Text.Json.JsonSerializer.Deserialize <T>(json.Compile()()); var differences = new ObjectsComparer.Comparer <T>().CalculateDifferences(object1, object2.Compile()()); Assert.IsTrue(differences.IsEmpty(), differences.ToResultTable(json.NameOf(), object2.NameOf())); }
public bool Equals(EventDetailModel x, EventDetailModel y) { var bandComparer = new ObjectsComparer.Comparer <BandListModel>(); var stageComparer = new ObjectsComparer.Comparer <StageListModel>(); if (ReferenceEquals(x, y)) { return(true); } if (ReferenceEquals(x, null)) { return(false); } if (ReferenceEquals(y, null)) { return(false); } if (x.GetType() != y.GetType()) { return(false); } return(Nullable.Equals(x.Start, y.Start) && Nullable.Equals(x.End, y.End) && x.BandId.Equals(y.BandId) && bandComparer.Compare(x.Band, y.Band) && x.StageId.Equals(y.StageId) && stageComparer.Compare(x.Stage, y.Stage)); }
public static void Compare <T>(T left, T right, Action <ObjectsComparer.Comparer <T> > setup = null) { var comparer = new ObjectsComparer.Comparer <T>(); setup?.Invoke(comparer); var different = comparer.Compare(left, right, out var differences); if (differences.Any()) { throw new DifferentException(differences); } }
protected virtual T SetProperty <T>(ref T member, T val, [CallerMemberName] string propertyName = null) { var comparer = new ObjectsComparer.Comparer <T>(); IsDirty = member is Guid ? IsDirty || ((!Equals(member, Guid.Empty)) && (!comparer.Compare(member, val, out _))) : IsDirty || (((member != null && !comparer.Compare(member, val, out _)) || (member == null || val == null))); if (Equals(member, val)) { return(member); } member = val; PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); return(member); }
public static void ObjectsAreEqual <T>(Expression <Func <T> > object1, Expression <Func <T> > object2) where T : class { var differences = new ObjectsComparer.Comparer <T>().CalculateDifferences(object1.Compile()(), object2.Compile()()); Assert.IsTrue(differences.IsEmpty(), differences.ToResultTable(object1.NameOf(), object2.NameOf())); }