public void Variables()
 {
     var item = new Definition();
     var data = new List<Variable>();
     item.Variables = data;
     Assert.AreEqual(data, item.Variables);
 }
 public void Name()
 {
     var item = new Definition();
     var data = Guid.NewGuid().ToString();
     item.Name = data;
     Assert.AreEqual(data, item.Name);
 }
        public void EqualsYNull()
        {
            var x = new Definition()
            {
                Preface = Guid.NewGuid().ToString(),
                Name = Guid.NewGuid().ToString(),
            };

            var c = new DefinitionComparer();
            c.Equals(x, null);
        }
        public void EqualsSame()
        {
            var preface = Guid.NewGuid().ToString();
            var name = Guid.NewGuid().ToString();
            var x = new Definition()
            {
                Preface = preface,
                Name = name,
            };

            var c = new DefinitionComparer();
            Assert.IsTrue(c.Equals(x, x));
        }
        public void Equalsfalse()
        {
            var x = new Definition()
            {
                Preface = Guid.NewGuid().ToString(),
                Name = Guid.NewGuid().ToString(),
            };
            var y = new Definition()
            {
                Preface = Guid.NewGuid().ToString(),
                Name = Guid.NewGuid().ToString(),
            };

            var c = new DefinitionComparer();
            Assert.IsFalse(c.Equals(x, y));
        }
Exemplo n.º 6
0
        public async Task Load()
        {
            var tableName = Guid.NewGuid().ToString();
            var random = new Random();
            var count = random.Next(1, 25);
            var definitions = new List<IDefinition>();
            for (var i = 0; i < count; i++)
            {
                var d = new Definition()
                {
                    Name = Guid.NewGuid().ToString(),
                    Preface = Guid.NewGuid().ToString(),
                };
                definitions.Add(d);
            }
            var def = new Definition()
            {
                Name = tableName,
                Preface = SqlStatements.Schema,
            };
            definitions.Add(def);

            var executor = Substitute.For<IExecutor>();
            var schemaReader = Substitute.For<ISchemaReader>();
            schemaReader.Load(SchemaTypes.Table).Returns(Task.FromResult<IEnumerable<IDefinition>>(definitions));

            var loader = Substitute.For<IDynamicLoader>();

            var reader = new SqlDataReader(executor, schemaReader, loader, tableName);
            var result = await reader.Load();

            Assert.IsNotNull(result);
            Assert.AreEqual(count, result.Count());

            schemaReader.Received().Load(SchemaTypes.Table);
        }
Exemplo n.º 7
0
        public async Task Retrieve()
        {
            var tableName = Guid.NewGuid().ToString();
            var random = new Random();
            var definitions = new List<IDefinition>();
            var variables = new List<IVariable>();
            variables.Add(new Variable() { IsPrimaryKey = true, ParameterName = Guid.NewGuid().ToString() });
            var def = new Definition()
            {
                Name = Guid.NewGuid().ToString(),
                Preface = Guid.NewGuid().ToString(),
                Variables = variables,
            };
            definitions.Add(def);

            var ds = new DataSet();
            var sql = string.Format(SqlStatements.SelectDataFormat, def.Preface, def.Name);

            var executor = Substitute.For<IExecutor>();
            executor.Query(sql).Returns(Task.FromResult(ds));
            var schemaReader = Substitute.For<ISchemaReader>();
            var loader = Substitute.For<IDynamicLoader>();
            loader.Dictionaries(ds).Returns(new List<IDictionary<string, object>>());

            var reader = new SqlDataReader(executor, schemaReader, loader, tableName);
            var result = await reader.Retrieve(definitions);

            Assert.IsNotNull(result);
            Assert.AreEqual(definitions.Count(), result.Count());

            executor.Received().Query(sql);
            loader.Received().Dictionaries(ds);
        }
Exemplo n.º 8
0
        public async Task CreateDoesntExist()
        {
            var type = SchemaTypes.Table;
            var name = Guid.NewGuid().ToString();
            var statement = Guid.NewGuid().ToString();

            var definitions = new List<IDefinition>();
            var def = new Definition()
            {
                Name = name,
                Preface = SqlStatements.Schema,
            };
            definitions.Add(def);
            var reader = Substitute.For<ISchemaReader>();
            reader.Load(type).Returns(Task.FromResult<IEnumerable<IDefinition>>(definitions));
            var executor = Substitute.For<IExecutor>();
            executor.NonQuery(statement).Returns(Task.FromResult(-1));

            var writer = new SqlDataWriter(reader, executor, Guid.NewGuid().ToString());
            var result = await writer.Create(type, name, statement);

            Assert.IsTrue(result);

            reader.Received().Load(type);
            executor.Received(0).NonQuery(statement);
        }
        public void GetHashCodeTest()
        {
            var x = new Definition()
            {
                Preface = Guid.NewGuid().ToString(),
                Name = Guid.NewGuid().ToString(),
            };

            var hash = string.Format("{0}{1}", x.Preface, x.Name).GetHashCode();
            var c = new DefinitionComparer();
            Assert.AreEqual(hash, c.GetHashCode(x));
        }
        public void BuildManifest()
        {
            var random = new Random();
            var defs = new List<Definition>();
            var schemas = new List<Schema>();
            var schema = new Schema()
            {
                Name = Guid.NewGuid().ToString(),
                Preface = Guid.NewGuid().ToString(),
            };
            var def = schema.Map<Definition>();
            defs.Add(def);

            var schemaCount = random.Next(15);
            for (var i = 0; i < schemaCount; i++)
            {
                var s = new Schema()
                {
                    Name = schema.Name,
                    Preface = schema.Preface,
                    DataType = Guid.NewGuid().ToString(),
                    ParameterName = Guid.NewGuid().ToString(),
                };
                schemas.Add(s);
            }
            var count = random.Next(15);
            for (var i = 0; i < count; i++)
            {
                var d = new Definition()
                {
                    Name = Guid.NewGuid().ToString(),
                    Preface = Guid.NewGuid().ToString(),
                };
                defs.Add(d);
            }

            var executor = Substitute.For<IExecutor>();
            var statements = Substitute.For<IStatements>();

            var dl = new SchemaReader(executor, statements);
            var manifest = dl.BuildManifest(defs, schemas);

            Assert.IsNotNull(manifest);
            Assert.AreEqual(count + 1, manifest.Count());
            var c = new DefinitionComparer();
            Assert.AreEqual(schemaCount, manifest.ElementAt(0).Variables.Count());
        }