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 static void Main() { IFoo <int> foo = new FooCollection <int> (); int a = foo [3]; Console.WriteLine(a); }
static void Test1() { IFoo <int> foo = new FooCollection <int>(); int a = foo[3]; Console.WriteLine(a); }
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"); } }
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(); }
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"); } }
public void ExtendedObservableCollection_SetItemFailTest2() { using (var verify = new Verify()) { var result = new FooCollection(); verify.ArgumentOutOfRangeException("index", 0, () => result.InvokeSetItem(0, null)); } }
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)); } }
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"); } }
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); }
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); }
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_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 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); }
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); }
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 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_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_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_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); } }