public void IndexOfShouldReturnExpectedValue()
        {
            // arrange
            var source = new ObservableKeyedCollection<string, object>( o => o.ToString() );
            var target = new ReadOnlyObservableKeyedCollection<string, object>( source );
            var item = new object();
            var expected = 0;

            source.Add( item );

            // act
            var actual = target.IndexOf( item );

            // assert
            Assert.Equal( expected, actual );
        }
        public void IListIndexOfShouldNotMatchIncompatibleItemType()
        {
            // arrange
            var source = new ObservableKeyedCollection<string, string>( o => o.ToString() );
            IList target = new ReadOnlyObservableKeyedCollection<string, string>( source );
            var expected = -1;

            source.Add( "test" );

            // act
            var actual = target.IndexOf( new object() );

            // assert
            Assert.Equal( expected, actual );
        }