public bool Equals(ISpecimenBuilder x, ISpecimenBuilder y) { var fx = x as FilteringSpecimenBuilder; var fy = y as FilteringSpecimenBuilder; if (fx != null && fy != null && this.specificationComparer.Equals(fx.Specification, fy.Specification)) { return(true); } if (x is CompositeSpecimenBuilder && y is CompositeSpecimenBuilder) { return(true); } var gx = x as NoSpecimenOutputGuard; var gy = y as NoSpecimenOutputGuard; if (gx != null && gy != null && this.specificationComparer.Equals(gx.Specification, gy.Specification)) { return(true); } var sirx = x as SeedIgnoringRelay; var siry = y as SeedIgnoringRelay; if (sirx != null && siry != null) { return(true); } var mix = x as MethodInvoker; var miy = y as MethodInvoker; if (mix != null && miy != null && this.queryComparer.Equals(mix.Query, miy.Query)) { return(true); } var omx = x as Omitter; var omy = y as Omitter; if (omx != null && omy != null && this.specificationComparer.Equals(omx.Specification, omy.Specification)) { return(true); } var dx = x as DelegatingSpecimenBuilder; var dy = y as DelegatingSpecimenBuilder; if (dx != null && dy != null && object.Equals(dx.OnCreate, dy.OnCreate)) { return(true); } if (GenericComparer.CreateFromTemplate(x).Equals(y)) { return(true); } return(EqualityComparer <ISpecimenBuilder> .Default.Equals(x, y)); }
public bool Equals(ISpecimenBuilder x, ISpecimenBuilder y) { if (x is FilteringSpecimenBuilder fx && y is FilteringSpecimenBuilder fy && this.specificationComparer.Equals(fx.Specification, fy.Specification)) { return(true); } if (x is CompositeSpecimenBuilder && y is CompositeSpecimenBuilder) { return(true); } if (x is NoSpecimenOutputGuard gx && y is NoSpecimenOutputGuard gy && this.specificationComparer.Equals(gx.Specification, gy.Specification)) { return(true); } if (x is SeedIgnoringRelay && y is SeedIgnoringRelay) { return(true); } if (x is MethodInvoker mix && y is MethodInvoker miy && this.queryComparer.Equals(mix.Query, miy.Query)) { return(true); } if (x is Omitter omx && y is Omitter omy && this.specificationComparer.Equals(omx.Specification, omy.Specification)) { return(true); } if (x is DelegatingSpecimenBuilder dx && y is DelegatingSpecimenBuilder dy && object.Equals(dx.OnCreate, dy.OnCreate)) { return(true); } if (x is Postprocessor px && y is Postprocessor py && this.commandComparer.Equals(px.Command, py.Command) && this.specificationComparer.Equals(px.Specification, py.Specification)) { return(true); } if (GenericComparer.CreateFromTemplate(x).Equals(y)) { return(true); } return(EqualityComparer <ISpecimenBuilder> .Default.Equals(x, y)); }