Inheritance: IEnumerable
        public void ExtendedObservableDictionary_RemoveHandlerTest2()
        {
            using (var verify = new Verify())
            {
                var result = new FooCollection();
                var collectionChangedEventQueue = new Queue <Tuple <object, NotifyCollectionChangedEventArgs> >();
                var collectionChangedListener   = new Listener <NotifyCollectionChangedEventArgs>((s, e) => collectionChangedEventQueue.Enqueue(Tuple.Create(s, e)));
                result.AddHandler(collectionChangedListener);
                result.RemoveHandler(collectionChangedListener);
                result.RemoveHandler(collectionChangedListener);

                var propertyChangedEventQueue = new Queue <Tuple <object, PropertyChangedEventArgs> >();
                var propertyChangedListener   = new Listener <PropertyChangedEventArgs>((s, e) => propertyChangedEventQueue.Enqueue(Tuple.Create(s, e)));
                result.AddHandler(propertyChangedListener);
                result.RemoveHandler(propertyChangedListener);
                result.RemoveHandler(propertyChangedListener);


                var itemPropertyChangedEventQueue = new Queue <Tuple <object, RelayedEventArgs <PropertyChangedEventArgs> > >();
                var itemPropertyChangedListener   = new Listener <RelayedEventArgs <PropertyChangedEventArgs> >((s, e) => itemPropertyChangedEventQueue.Enqueue(Tuple.Create(s, e)));
                result.AddHandler(itemPropertyChangedListener);
                result.RemoveHandler(itemPropertyChangedListener);
                result.RemoveHandler(itemPropertyChangedListener);
            }
        }
Ejemplo n.º 2
0
    public static void Main()
    {
        IFoo <int> foo = new FooCollection <int> ();
        int        a   = foo [3];

        Console.WriteLine(a);
    }
Ejemplo n.º 3
0
    static void Test1()
    {
        IFoo <int> foo = new FooCollection <int>();
        int        a   = foo[3];

        Console.WriteLine(a);
    }
Ejemplo n.º 4
0
        public void ExtendedObservableCollection_ItemPropertyChangedListenerTest2()
        {
            using (var verify = new Verify())
            {
                var result = new FooCollection();
                var itemPropertyChangedEventQueue = new Queue <Tuple <object, RelayedEventArgs <PropertyChangedEventArgs> > >();
                var itemPropertyChangedListener   = new Listener <RelayedEventArgs <PropertyChangedEventArgs> >((s, e) => itemPropertyChangedEventQueue.Enqueue(Tuple.Create(s, e)));

                var mutator = new Foo();
                result.Add(mutator);

                result.AddHandler(itemPropertyChangedListener);
                mutator.FooBar = "AAA";

                verify.AreEqual(1, itemPropertyChangedEventQueue.Count, "event didn't fire");
                var event1 = itemPropertyChangedEventQueue.Dequeue();
                verify.AreSame(result, event1.Item1, "event has the wrong item");
                verify.AreEqual <object>(mutator, event1.Item2.OriginalSender, "event has the wrong original sender");
                verify.AreEqual("FooBar", event1.Item2.EventArgs.PropertyName, "event as the wrong parameter name");

                result.Remove(mutator);

                mutator.FooBar = "BBB";

                verify.AreEqual(0, itemPropertyChangedEventQueue.Count, "event handler wasn't removed");
            }
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            Console.WriteLine("Creating FooCollection");
            FooCollection fooCollection = new FooCollection();

            Console.WriteLine($"Done. FooCollection contains {fooCollection.Collection.Count} Foos.");

            List <Foo> foosToFind = CreateSearchList(50);

            Console.WriteLine($"Going to find {foosToFind.Count} random combos");
            Console.WriteLine();

            int       iterations = 100000;
            Stopwatch sw         = new Stopwatch();

            sw.Start();
            SearchWithLinq(fooCollection, foosToFind, iterations);
            sw.Stop();
            TimeSpan linqTime = sw.Elapsed;

            sw.Restart();
            SearchWithLoop(fooCollection, foosToFind, iterations);
            sw.Stop();
            TimeSpan loopTime = sw.Elapsed;

            Console.WriteLine("-----");
            Console.WriteLine($"Searched through the collection for each item {iterations} times.");
            Console.WriteLine($"Linq time: {linqTime.Seconds} seconds");
            Console.WriteLine($"Loop time: {loopTime.Seconds} seconds");
            Console.WriteLine("-----");

            Console.ReadLine();
        }
Ejemplo n.º 6
0
 public void ExtendedObservableCollection_RemoveItemFailTest2()
 {
     using (var verify = new Verify())
     {
         var result = new FooCollection();
         verify.ArgumentOutOfRangeException("index", 0, result.InvokeRemoveItem);
     }
 }
 public void ExtendedObservableCollection_AddRemoveOverrideTest()
 {
     using (var verify = new Verify())
     {
         var result = new FooCollection(new[] { new Foo(), new Foo(), new Foo() });
         verify.AreEqual(3, result.AddCount, "count was incorrect");
     }
 }
Ejemplo n.º 8
0
 public void ExtendedObservableCollection_AddRemoveOverrideTest()
 {
     using (var verify = new Verify())
     {
         var result = new FooCollection(new[] { new Foo(), new Foo(), new Foo() });
         verify.AreEqual(3, result.AddCount, "count was incorrect");
     }
 }
Ejemplo n.º 9
0
 public void ExtendedObservableCollection_SetItemFailTest2()
 {
     using (var verify = new Verify())
     {
         var result = new FooCollection();
         verify.ArgumentOutOfRangeException("index", 0, () => result.InvokeSetItem(0, null));
     }
 }
Ejemplo n.º 10
0
 static void SearchWithLinq(FooCollection fullCollection, List <Foo> searchList, int iterations)
 {
     for (int i = 0; i < iterations; i++)
     {
         foreach (Foo item in searchList)
         {
             fullCollection.GetFooByFlavorAndColorLinq(item.Color, item.Flavor);
         }
     }
 }
        public void ExtendedObservableCollection_AddNullHandlerTest()
        {
            using (var verify = new Verify())
            {
                var result = new FooCollection();

                verify.ArgumentNullException("eventHandler", () => result.AddHandler((IListener<NotifyCollectionChangedEventArgs>)null));
                verify.ArgumentNullException("eventHandler", () => result.AddHandler((IListener<PropertyChangedEventArgs>)null));
                verify.ArgumentNullException("eventHandler", () => result.AddHandler((IListener<RelayedEventArgs<PropertyChangedEventArgs>>)null));
            }
        }
Ejemplo n.º 12
0
        public void ExtendedObservableCollection_RemoveNullHandlerTest()
        {
            using (var verify = new Verify())
            {
                var result = new FooCollection();

                verify.ArgumentNullException("eventHandler", () => result.RemoveHandler((IListener <NotifyCollectionChangedEventArgs>)null));
                verify.ArgumentNullException("eventHandler", () => result.RemoveHandler((IListener <PropertyChangedEventArgs>)null));
                verify.ArgumentNullException("eventHandler", () => result.RemoveHandler((IListener <RelayedEventArgs <PropertyChangedEventArgs> >)null));
            }
        }
        public void ExtendedReadOnlyObservableCollection_OnSourcePropertyChanged()
        {
            using (var verify = new Verify())
            {
                var list           = new FooCollection();
                var result         = new ReadOnlyFooCollection(list);
                var propertyAssert = new PropertyChangedEventTest(verify, result);

                list.Boom = 10;

                propertyAssert.ExpectEvent("Boom");
                verify.AreEqual(10, result.Boom, "Boom");
            }
        }
Ejemplo n.º 14
0
        public void GetJoinedStringTest()
        {
            //arrange
            var tartget = new FooCollection();

            tartget.Add(new FooStub());
            tartget.Add(new FooStub());
            var expected = "TestStubTestStub";
            //act
            var actual = tartget.GetJoinedString();

            //assert
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 15
0
        public void AddTestDummy()
        {
            //arrange
            var tartget = new FooCollection();

            tartget.Add(new FooDummy());
            tartget.Add(new FooDummy());
            var expected = 2;
            //act
            var actual = tartget.Count;

            //assert
            Assert.AreEqual(expected, actual);
        }
    public override object ReadJson(JsonReader reader, Type objectType,
                                    object existingValue, JsonSerializer serializer)
    {
        // N.B. null handling is missing
        var surrogate   = serializer.Deserialize <FooCollectionSurrogate>(reader);
        var fooElements = surrogate.Collection;
        var fooColl     = new FooCollection {
            Bar = surrogate.Bar
        };

        foreach (var el in fooElements)
        {
            fooColl.Add(el);
        }
        return(fooColl);
    }
Ejemplo n.º 17
0
        public void ExtendedObservableCollection_SerializationTest2()
        {
            using (var verify = new Verify())
            {
                var collection = new FooCollection();
                collection.Add(new Foo());
                collection.Add(new Foo());
                collection.Add(new Foo());

                var stream        = new System.IO.MemoryStream();
                var fooSerializer = new DataContractSerializer(typeof(FooCollection));
                fooSerializer.WriteObject(stream, collection);
                stream.Position = 0;
                var newFoo = (FooCollection)fooSerializer.ReadObject(stream);

                verify.AreEqual(collection.Count, newFoo.Count, "collection count was off");
            }
        }
Ejemplo n.º 18
0
        public void ExtendedObservableCollection_MixedAddRemoveTest()
        {
            using (var verify = new Verify())
            {
                var fired  = 0;
                var result = new FooCollection();
                PropertyChangedEventHandler eventHandler = (s, e) => fired += 1;

                result.PropertyChanged += eventHandler;
                result.Add(new Foo());
                verify.AreEqual(2, fired, "events were not fired"); //Count and Item[]

                ((INotifyPropertyChanged)result).PropertyChanged -= eventHandler;
                result.Add(new Foo());

                verify.AreEqual(2, fired, "handler wasn't removed"); //Count and Item[]
            }
        }
Ejemplo n.º 19
0
        public void GetJoinedStringTestUseMock()
        {
            //arrange
            var tartget = new FooCollection();
            var fooMock = new Mock <IFoo>();

            fooMock.Setup(foo => foo.Bar)
            .Returns("TestStub");

            tartget.Add(fooMock.Object);
            tartget.Add(fooMock.Object);
            var expected = "TestStubTestStub";
            //act
            var actual = tartget.GetJoinedString();

            //assert
            Assert.AreEqual(expected, actual);
        }
Ejemplo n.º 20
0
        public void GetJoinedStringContainTest()
        {
            //arrange
            var tartget = new FooCollection();
            var spy1    = new FooSpy {
                Bar = "12312"
            };
            var spy2 = new FooSpy {
                Bar = "00000"
            };

            tartget.Add(spy1);
            tartget.Add(spy2);
            //act
            tartget.GetJoinedStringContain('0');
            //assert
            Assert.AreEqual(false, spy1.isUsed);
            Assert.AreEqual(true, spy2.isUsed);
        }
Ejemplo n.º 21
0
        public void ExtendedObservableCollection_CollectionChangedListenerTest()
        {
            using (var verify = new Verify())
            {
                var result = new FooCollection();
                var collectionChangedEventQueue = new Queue <Tuple <object, NotifyCollectionChangedEventArgs> >();
                var collectionChangedListener   = new Listener <NotifyCollectionChangedEventArgs>((s, e) => collectionChangedEventQueue.Enqueue(Tuple.Create(s, e)));
                result.AddHandler(collectionChangedListener);

                result.Add(new Foo());
                verify.AreEqual(1, collectionChangedEventQueue.Count, "event didn't fire");
                var event1 = collectionChangedEventQueue.Dequeue();
                verify.AreSame(result, event1.Item1, "event has the wrong item");
                verify.AreEqual(NotifyCollectionChangedAction.Add, event1.Item2.Action, "event as the wrong action");

                result.RemoveHandler(collectionChangedListener);
                result.Add(new Foo());
                verify.AreEqual(0, collectionChangedEventQueue.Count, "event handler wasn't removed");
            }
        }
Ejemplo n.º 22
0
        public void ExtendedObservableCollection_PropertyChangedListenerTest()
        {
            using (var verify = new Verify())
            {
                var result = new FooCollection();
                var propertyChangedEventQueue = new Queue <Tuple <object, PropertyChangedEventArgs> >();
                var propertyChangedListener   = new Listener <PropertyChangedEventArgs>((s, e) => propertyChangedEventQueue.Enqueue(Tuple.Create(s, e)));
                result.AddHandler(propertyChangedListener);

                result.Boom += 1;
                verify.AreEqual(1, propertyChangedEventQueue.Count, "event didn't fire");
                var event1 = propertyChangedEventQueue.Dequeue();
                verify.AreSame(result, event1.Item1, "event has the wrong item");
                verify.AreEqual("Boom", event1.Item2.PropertyName, "event as the wrong parameter name");

                result.RemoveHandler(propertyChangedListener);
                result.Boom += 1;
                verify.AreEqual(0, propertyChangedEventQueue.Count, "event handler wasn't removed");
            }
        }
    static void Main(string[] args)
    {
        FooCollection coll = new FooCollection();

        coll.Add(new Foo {
            Id = 1, Name = "Moe"
        });
        coll.Add(new Foo {
            Id = 2, Name = "Larry"
        });
        coll.Add(new Foo {
            Id = 3, Name = "Curly"
        });
        JsonSerializerSettings settings = new JsonSerializerSettings();

        settings.Converters.Add(new FooCollectionConverter());
        settings.Formatting = Newtonsoft.Json.Formatting.Indented;
        string json = JsonConvert.SerializeObject(coll, settings);

        Console.WriteLine(json);
    }
 public void ExtendedObservableCollection_SetItemFailTest2()
 {
     using (var verify = new Verify())
     {
         var result = new FooCollection();
         verify.ArgumentOutOfRangeException("index", 0, () => result.InvokeSetItem(0, null));
     }
 }
        public void ExtendedObservableCollection_ItemPropertyChangedListenerTest2()
        {
            using (var verify = new Verify())
            {
                var result = new FooCollection();
                var itemPropertyChangedEventQueue = new Queue<Tuple<object, RelayedEventArgs<PropertyChangedEventArgs>>>();
                var itemPropertyChangedListener = new Listener<RelayedEventArgs<PropertyChangedEventArgs>>((s, e) => itemPropertyChangedEventQueue.Enqueue(Tuple.Create(s, e)));

                var mutator = new Foo();
                result.Add(mutator);

                result.AddHandler(itemPropertyChangedListener);
                mutator.FooBar = "AAA";

                verify.AreEqual(1, itemPropertyChangedEventQueue.Count, "event didn't fire");
                var event1 = itemPropertyChangedEventQueue.Dequeue();
                verify.AreSame(result, event1.Item1, "event has the wrong item");
                verify.AreEqual<object>(mutator, event1.Item2.OriginalSender, "event has the wrong original sender");
                verify.AreEqual("FooBar", event1.Item2.EventArgs.PropertyName, "event as the wrong parameter name");

                result.Remove(mutator);

                mutator.FooBar = "BBB";

                verify.AreEqual(0, itemPropertyChangedEventQueue.Count, "event handler wasn't removed");
            }
        }
        public void ExtendedObservableCollection_MixedAddRemoveTest()
        {
            using (var verify = new Verify())
            {
                var fired = 0;
                var result = new FooCollection();
                PropertyChangedEventHandler eventHandler = (s, e) => fired += 1;

                result.PropertyChanged += eventHandler;
                result.Add(new Foo());
                verify.AreEqual(2, fired, "events were not fired"); //Count and Item[]

                ((INotifyPropertyChanged)result).PropertyChanged -= eventHandler;
                result.Add(new Foo());

                verify.AreEqual(2, fired, "handler wasn't removed"); //Count and Item[]

            }
        }
        public void ExtendedObservableCollection_PropertyChangedListenerTest()
        {
            using (var verify = new Verify())
            {
                var result = new FooCollection();
                var propertyChangedEventQueue = new Queue<Tuple<object, PropertyChangedEventArgs>>();
                var propertyChangedListener = new Listener<PropertyChangedEventArgs>((s, e) => propertyChangedEventQueue.Enqueue(Tuple.Create(s, e)));
                result.AddHandler(propertyChangedListener);

                result.Boom += 1;
                verify.AreEqual(1, propertyChangedEventQueue.Count, "event didn't fire");
                var event1 = propertyChangedEventQueue.Dequeue();
                verify.AreSame(result, event1.Item1, "event has the wrong item");
                verify.AreEqual("Boom", event1.Item2.PropertyName, "event as the wrong parameter name");

                result.RemoveHandler(propertyChangedListener);
                result.Boom += 1;
                verify.AreEqual(0, propertyChangedEventQueue.Count, "event handler wasn't removed");
            }
        }
 public void ExtendedObservableCollection_RemoveItemFailTest2()
 {
     using (var verify = new Verify())
     {
         var result = new FooCollection();
         verify.ArgumentOutOfRangeException("index", 0, result.InvokeRemoveItem);
     }
 }
        public void ExtendedObservableCollection_SerializationTest2()
        {
            using (var verify = new Verify())
            {
                var collection = new FooCollection();
                collection.Add(new Foo());
                collection.Add(new Foo());
                collection.Add(new Foo());

                var stream = new System.IO.MemoryStream();
                var fooSerializer = new DataContractSerializer(typeof(FooCollection));
                fooSerializer.WriteObject(stream, collection);
                stream.Position = 0;
                var newFoo = (FooCollection)fooSerializer.ReadObject(stream);

                verify.AreEqual(collection.Count, newFoo.Count, "collection count was off");

            }
        }
        public void ExtendedObservableCollection_CollectionChangedListenerTest()
        {
            using (var verify = new Verify())
            {
                var result = new FooCollection();
                var collectionChangedEventQueue = new Queue<Tuple<object, NotifyCollectionChangedEventArgs>>();
                var collectionChangedListener = new Listener<NotifyCollectionChangedEventArgs>((s, e) => collectionChangedEventQueue.Enqueue(Tuple.Create(s, e)));
                result.AddHandler(collectionChangedListener);

                result.Add(new Foo());
                verify.AreEqual(1, collectionChangedEventQueue.Count, "event didn't fire");
                var event1 = collectionChangedEventQueue.Dequeue();
                verify.AreSame(result, event1.Item1, "event has the wrong item");
                verify.AreEqual(NotifyCollectionChangedAction.Add, event1.Item2.Action, "event as the wrong action");

                result.RemoveHandler(collectionChangedListener);
                result.Add(new Foo());
                verify.AreEqual(0, collectionChangedEventQueue.Count, "event handler wasn't removed");
            }
        }
        public void ExtendedObservableDictionary_RemoveHandlerTest2()
        {
            using (var verify = new Verify())
            {
                var result = new FooCollection();
                var collectionChangedEventQueue = new Queue<Tuple<object, NotifyCollectionChangedEventArgs>>();
                var collectionChangedListener = new Listener<NotifyCollectionChangedEventArgs>((s, e) => collectionChangedEventQueue.Enqueue(Tuple.Create(s, e)));
                result.AddHandler(collectionChangedListener);
                result.RemoveHandler(collectionChangedListener);
                result.RemoveHandler(collectionChangedListener);

                var propertyChangedEventQueue = new Queue<Tuple<object, PropertyChangedEventArgs>>();
                var propertyChangedListener = new Listener<PropertyChangedEventArgs>((s, e) => propertyChangedEventQueue.Enqueue(Tuple.Create(s, e)));
                result.AddHandler(propertyChangedListener);
                result.RemoveHandler(propertyChangedListener);
                result.RemoveHandler(propertyChangedListener);

                var itemPropertyChangedEventQueue = new Queue<Tuple<object, RelayedEventArgs<PropertyChangedEventArgs>>>();
                var itemPropertyChangedListener = new Listener<RelayedEventArgs<PropertyChangedEventArgs>>((s, e) => itemPropertyChangedEventQueue.Enqueue(Tuple.Create(s, e)));
                result.AddHandler(itemPropertyChangedListener);
                result.RemoveHandler(itemPropertyChangedListener);
                result.RemoveHandler(itemPropertyChangedListener);
            }
        }
        public void ExtendedReadOnlyObservableCollection_OnSourcePropertyChanged()
        {
            using (var verify = new Verify())
            {
                var list = new FooCollection();
                var result = new ReadOnlyFooCollection(list);
                var propertyAssert = new PropertyChangedEventTest(verify, result);

                list.Boom = 10;

                propertyAssert.ExpectEvent("Boom");
                verify.AreEqual(10, result.Boom, "Boom");
            }
        }