public void filter_unlinked_objects_with_intersecting_Ids_returns_intersection()
        {
            try
            {
                var sut = Isolate.Fake.Instance <ObjectsFilter>(
                    Members.CallOriginal, ConstructorWillBe.Ignored, BaseConstructorWillBe.Ignored);

                var fakeLogger = Isolate.Fake.Instance <ServerLogger>(Members.ReturnNulls, ConstructorWillBe.Ignored);
                ObjectState.SetField(sut, "_logger", fakeLogger);

                var fakeFeatureClass = Isolate.Fake.Instance <IFeatureClass>();
                Isolate.WhenCalled(() => fakeFeatureClass.FindField("SAP_ID")).WillReturn(1);

                var fakeQueryFilter = Isolate.Fake.Instance <QueryFilter>();
                Isolate.WhenCalled(() => ObjectsFilter.GetQueryFilter(null)).WillReturn(fakeQueryFilter);

                var fakeFeatureCursor = Isolate.Fake.Instance <IFeatureCursor>();
                Isolate.WhenCalled(() => fakeFeatureClass.Search(null, false)).WillReturn(fakeFeatureCursor);

                var fakeFeature1 = Isolate.Fake.Instance <IFeature>();
                Isolate.WhenCalled(() => fakeFeature1.Value[1]).WillReturn("1001");

                var fakeFeature2 = Isolate.Fake.Instance <IFeature>();
                Isolate.WhenCalled(() => fakeFeature2.Value[1]).WillReturn("1002");

                var fakeFeature3 = Isolate.Fake.Instance <IFeature>();
                Isolate.WhenCalled(() => fakeFeature3.Value[1]).WillReturn("1003");

                Isolate.WhenCalled(() => fakeFeatureCursor.NextFeature()).WillReturn(fakeFeature1);
                Isolate.WhenCalled(() => fakeFeatureCursor.NextFeature()).WillReturn(fakeFeature2);
                Isolate.WhenCalled(() => fakeFeatureCursor.NextFeature()).WillReturn(fakeFeature3);
                Isolate.WhenCalled(() => fakeFeatureCursor.NextFeature()).WillReturn(null);

                Isolate.WhenCalled(() => sut.GetFeatureClass("foo")).WillReturn(fakeFeatureClass);

                var fakeErpIds = new List <string> {
                    "999", "1002", "1004"
                };

                sut.FilterUnlinkedObjects("objectClass", fakeErpIds);

                Assert.That(fakeErpIds, Is.EquivalentTo(new List <string> {
                    "999", "1004"
                }));
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                throw;
            }
        }