コード例 #1
0
 public void TryCreateReferenceForNullTypeThrows()
 {
     Assert.ThrowsException <ArgumentNullException>(
         () => CustomDataSourceReference.TryCreateReference(
             null,
             out CustomDataSourceReference _));
 }
コード例 #2
0
        private static void RunCreateSuccessTest(Type type)
        {
            var result = CustomDataSourceReference.TryCreateReference(
                type,
                out CustomDataSourceReference reference);

            Assert.IsTrue(result);
            Assert.IsNotNull(reference);

            var metadata   = type.GetCustomAttribute <CustomDataSourceAttribute>();
            var dataSource = type.GetCustomAttribute <DataSourceAttribute>();
            var tables     = ((ICustomDataSource)Activator.CreateInstance(type)).DataTables;

            Assert.IsNotNull(metadata);
            Assert.IsNotNull(dataSource);
            Assert.IsNotNull(tables);

            Assert.AreEqual(type.Assembly.Location, reference.AssemblyPath);
            Assert.AreEqual(metadata.Description, reference.Description);
            Assert.AreEqual(metadata.Guid, reference.Guid);
            Assert.AreEqual(metadata.Name, reference.Name);
            Assert.AreEqual(type, reference.Type);
            Assert.AreEqual(dataSource, reference.DataSource);
            Assert.AreEqual(tables.Count(), reference.AvailableTables.Count());
            Assert.IsTrue(tables.All(x => reference.AvailableTables.Contains(x)));
        }
コード例 #3
0
        private static void RunCreateFailTest(Type type)
        {
            var result = CustomDataSourceReference.TryCreateReference(
                type,
                out CustomDataSourceReference reference);

            Assert.IsFalse(result);
            Assert.IsNull(reference);
        }
 public void SetupReference(Type type)
 {
     if (type != null)
     {
         if (CustomDataSourceReference.TryCreateReference(
                 type,
                 out CustomDataSourceReference reference))
         {
             this.TypeToReference[type] = reference;
         }
     }
 }
コード例 #5
0
        private bool DoesDataSourceSupport(string file, CustomDataSourceReference cds)
        {
            try
            {
                if (cds.Instance.IsFileSupported(file))
                {
                    return(true);
                }
            }
            catch
            {
                // obviously can't support the file if it can't
                // make a decision
            }

            return(false);
        }
コード例 #6
0
        public void CloneClones()
        {
            var result = CustomDataSourceReference.TryCreateReference(
                typeof(SampleCds),
                out CustomDataSourceReference reference);

            Assert.IsTrue(result);
            Assert.IsNotNull(reference);

            var clone = reference.CloneT();

            Assert.IsNotNull(clone);
            Assert.AreEqual(reference.AssemblyPath, clone.AssemblyPath);
            Assert.AreEqual(reference.DataSource, clone.DataSource);
            Assert.AreEqual(reference.Description, clone.Description);
            Assert.AreEqual(reference.Guid, clone.Guid);
            Assert.AreEqual(reference.Name, clone.Name);
            Assert.AreEqual(reference.Type, clone.Type);

            Assert.IsTrue(reference.AvailableTables.All(x => clone.AvailableTables.Contains(x)));
            Assert.IsTrue(clone.AvailableTables.All(x => reference.AvailableTables.Contains(x)));
        }
 public bool TryCreateCustomDataSourceReference(
     Type type,
     out CustomDataSourceReference reference)
 {
     return(this.TypeToReference.TryGetValue(type, out reference));
 }