public void CreateTest() { AreEqual(RWHelper.CreateRW(new Dictionary <string, object>()).GetType().Name, "DictionaryRW`3"); AreEqual(RWHelper.CreateRW(new ReadOnlyDictionary <string, object>(new Dictionary <string, object>())).GetType().Name, "DictionaryRW`3"); AreEqual(RWHelper.CreateRW(new ConcurrentDictionary <string, object>()).GetType().Name, "DictionaryRW`3"); AreEqual(RWHelper.CreateRW(new SortedDictionary <string, object>()).GetType().Name, "DictionaryRW`3"); AreEqual(RWHelper.CreateRW(new SortedList <string, object>()).GetType().Name, "DictionaryRW`3"); AreEqual(RWHelper.CreateRW(new List <object>()).GetType().Name, "ListRW`2"); AreEqual(RWHelper.CreateRW(new ReadOnlyCollection <object>(new List <object>())).GetType().Name, "ListRW`2"); AreEqual(RWHelper.CreateRW(new Collection <object>()).GetType().Name, "ListRW`2"); AreEqual(RWHelper.CreateRW(new LinkedList <object>()).GetType().Name, "CollectionRW`2"); AreEqual(RWHelper.CreateRW(new HashSet <object>()).GetType().Name, "CollectionRW`2"); AreEqual(RWHelper.CreateRW(new SortedSet <object>()).GetType().Name, "CollectionRW`2"); AreEqual(RWHelper.CreateRW(new Hashtable()).GetType().Name, "DictionaryRW`1"); AreEqual(RWHelper.CreateRW(new SortedList()).GetType().Name, "DictionaryRW`1"); AreEqual(RWHelper.CreateRW(new OrderedDictionary()).GetType().Name, "DictionaryRW`1"); AreEqual(RWHelper.CreateRW(new ListDictionary()).GetType().Name, "DictionaryRW`1"); AreEqual(RWHelper.CreateRW(new ArrayList()).GetType().Name, "ListRW`1"); AreEqual(RWHelper.CreateRW(new StringCollection()).GetType().Name, "ListRW`1"); AreEqual(RWHelper.CreateRW(new DataSet()).GetType().Name, "DataSetRW`1"); AreEqual(RWHelper.CreateRW(new DataTable()).GetType().Name, "DataTableRW`1"); AreEqual(RWHelper.CreateRW(new DataTable().NewRow()).GetType().Name, "DataRowRW`1"); AreEqual(GetCSharpName(RWHelper.CreateRW(new int[0]).GetType()), "Swifter.RW.ArrayRW<int>"); AreEqual(GetCSharpName(RWHelper.CreateRW(new int[0, 0]).GetType()), "Swifter.RW.MultiDimArray<int[,],int>.FirstRW"); AreEqual(GetCSharpName(RWHelper.CreateRW(new int[0, 0, 0]).GetType()), "Swifter.RW.MultiDimArray<int[,,],int>.FirstRW"); AreEqual(RWHelper.CreateReader(new List <object>().GetEnumerator().AsEnumerable()).GetType().Name, "EnumeratorReader`2"); AreEqual(RWHelper.CreateReader(new List <object>().GetEnumerator()).GetType().Name, "EnumeratorReader`2"); AreEqual(RWHelper.CreateReader(new ArrayList().GetEnumerator().AsEnumerable()).GetType().Name, "EnumeratorReader`1"); AreEqual(RWHelper.CreateReader(new ArrayList().GetEnumerator()).GetType().Name, "EnumeratorReader`1"); AreEqual(RWHelper.CreateReader(new DataTable().CreateDataReader()).GetType().Name, "DbDataReaderReader"); AreEqual( RWHelper.CreateItemRW(RWHelper.CreateRW(new { Data = new Dictionary <string, object>() }).As <string>(), "Data").GetType().Name, "DictionaryRW`3"); AreEqual( RWHelper.CreateItemReader(RWHelper.CreateRW(new { Data = new DataTable().CreateDataReader() }).As <string>(), "Data").GetType().Name, "DbDataReaderReader"); Catch <NotSupportedException>(() => RWHelper.CreateRW("err")); var asTester = (IAsDataRW)RWHelper.CreateRW(new int[0]).As <string>(); Catch <SuccessException>(() => asTester.InvokeTIn(new AsTestInvoker <int>())); Catch <SuccessException>(() => asTester.InvokeTOut(new AsTestInvoker <string>())); }