Example #1
0
        private IContainer CreateDependencyContainer()
        {
            var folder    = Path.Combine(ScaffoldUtility.GetRootFolder(), "Infrastructure", "Data", "Json");
            var container = DependencyService.CreateContainer(FacetContext, folder, null);

            return(container);
        }
Example #2
0
        public void GenerateTestData()
        {
            var options = new DumpOptions()
            {
                DumpStyle         = DumpStyle.CSharp,
                IndentSize        = 1,
                IndentChar        = '\t',
                LineBreakChar     = Environment.NewLine,
                SetPropertiesOnly = false,
                MaxLevel          = 5,
                ExcludeProperties = new HashSet <string>()
                {
                    "Compiler",
                    "FieldType",
                    "ResultField",
                    "IsGroupByField",
                    "Specification"
                },
                PropertyOrderBy     = null,
                IgnoreDefaultValues = false
            };


            ScaffoldUtility.Dump(
                new
            {
                //ResultFieldTypes = Registry.Context.Set<ResultFieldType>().ToList(),
                //ResultFields = Registry.Context.Set<ResultField>().ToList(),
                // ResultSpecificationFields = Registry.Context.Set<ResultSpecificationField>().ToList(),
                ResultSpecifications = Registry.Context.Set <ResultSpecification>().Include(z => z.Fields).ToList()
            },
                @"C:\TEMP\ResultSpecificationFields.cs",
                options
                );
        }
Example #3
0
 protected override void OnModelCreating(ModelBuilder builder)
 {
     base.OnModelCreating(builder);
     foreach (var type in ScaffoldUtility.GetModelTypes())
     {
         builder.Entity(type).HasData(Fixture.Items[type]);
     }
 }
        public static void DumpUriObject(string uri, object value)
        {
            dynamic expando = new ExpandoObject();

            expando.Uri       = uri;
            expando.ValueType = value.GetType().Name;
            expando.Value     = value;
            ScaffoldUtility.Dump(expando, $@"C:\TEMP\{value.GetType().Name}_{uri.Replace(":", "#").Replace("/", "+")}.cs");;
        }
Example #5
0
        public void UpdateFacetContextFixture_IfParameterIsSetToTrue(bool updateTheModel, string hostName, string databaseName, string folder)
        {
            if (!updateTheModel)
            {
                return;
            }

            var serializer = CreateSerializer();
            var path       = Path.Combine(ScaffoldUtility.GetRootFolder(), folder);

            using (var context = CreateContext(hostName, databaseName)) {
                new JsonWriterService(serializer).SerializeTypesToPath(context, ScaffoldUtility.GetModelTypes(), path);
            }
        }
        public QuerySetup FakeResultQuerySetup(FacetsConfig2 facetsConfig, string resultFacetCode, string specificationKey)
        {
            var resultFields     = Registry.Results.GetFieldsByKey(specificationKey);
            var fakeJoins        = FakeJoinsClause(5);
            var joinCompiler     = MockJoinsClauseCompiler(fakeJoins);
            var fakePickCriteria = new List <string> {
                "ID IN (1,2,3)"
            };
            var mockPicksCompiler = MockPicksFilterCompiler(fakePickCriteria);
            var facetsGraph       = ScaffoldUtility.DefaultFacetsGraph(Registry);
            var resultFacet       = Registry.Facets.GetByCode(resultFacetCode);

            // FIXME: Should be mocked
            var compiler   = new QuerySetupBuilder(facetsGraph, mockPicksCompiler.Object, joinCompiler.Object);
            var querySetup = compiler.Build(facetsConfig, resultFacet, resultFields);

            return(querySetup);
        }
        //[Fact(Skip = "Not a test. Scaffolds C# facets from database. Stores data in FacetDict.cs.txt")]
        public void ScaffoldCSharpFacetsToFileUsingOnlineDatabase()
        {
            var options = new DumpOptions()
            {
                DumpStyle         = DumpStyle.CSharp,
                IndentSize        = 1,
                IndentChar        = '\t',
                LineBreakChar     = Environment.NewLine,
                SetPropertiesOnly = false,
                MaxLevel          = 10, // int.MaxValue,
                ExcludeProperties = new HashSet <string>()
                {
                    "Facets",
                    "Facet",
                    "TargetTable",
                    "QueryCriteria",
                    "FacetGroupKey",
                    "FacetTypeKey",
                    "FacetTypeKey",
                    "TableOrUdfName",
                    "HasAlias",
                    "ResolvedAliasOrTableOrUdfName",
                    "ResolvedTableOrUdfCall",
                    "ResolvedSqlJoinName"
                },
                PropertyOrderBy     = null,
                IgnoreDefaultValues = false
            };

            var facets = Registry.Facets.GetAll();

            Dictionary <string, Facet> facetsDict = new Dictionary <string, Facet>();

            foreach (var facet in facets)
            {
                facetsDict.Add(facet.FacetCode, facet);
            }
            var path = Path.Join(DataFolder(), "FacetsDict.cs.txt");

            ScaffoldUtility.Dump(facetsDict, path, options);
        }
        //[Fact(Skip = "Not a test. Scaffolds C# QuerySetup objects to file, read from a JSON seeded context")]
        public void ScaffoldCSharpQuerySetupsToFileUsingJsonSeededFacetContext()
        {
            var scaffolder = new DisposableFacetContextContainer(Fixture);

            // Uri format: "target-facet[@trigger-facet]:(facet-code[@picks])(/facet-code[@picks])*
            var uris = new List <string>()
            {
                "sites:sites:",
                "sites:sites@1",
                "sites:country@73/sites:",
                "tbl_denormalized_measured_values_33_0:tbl_denormalized_measured_values_33_0@(110,2904)"
            };
            var options = new DumpOptions()
            {
                DumpStyle         = DumpStyle.CSharp,
                IndentSize        = 1,
                IndentChar        = '\t',
                LineBreakChar     = Environment.NewLine,
                SetPropertiesOnly = false,
                MaxLevel          = 10, // int.MaxValue,
                ExcludeProperties = new HashSet <string>()
                {
                    "Facet",
                    "SourceName",
                    "TargetName",
                    "Key",
                    "CategoryTextFilter"
                },
                PropertyOrderBy     = null,
                IgnoreDefaultValues = false
            };

            foreach (var uri in uris)
            {
                var facetsConfig = scaffolder.FakeFacetsConfig(uri);
                var querySetup   = scaffolder.FakeCountOrContentQuerySetup(facetsConfig);

                var path = Path.Join(DataFolder(), $"QuerySetup_{UriName(uri)}.cs.txt");
                ScaffoldUtility.Dump(querySetup, path, options);
            }
        }
        //[Fact(Skip = "Not a test. Scaffolds FacetsConfigs from JSON seeded context")]
        public void ScaffoldCSharpFacetsConfigsToFileUsingJsonSeededFacetContext()
        {
            var scaffolder = new MockFacetsConfigFactory(Registry.Facets);
            // Uri format: "target-facet[@trigger-facet]:(facet-code[@picks])(/facet-code[@picks])*
            var uris = new List <string>()
            {
                // "sites:sites:",
                // "sites:sites@1",
                // "sites:country@73/sites:",
                "tbl_denormalized_measured_values_33_0:tbl_denormalized_measured_values_33_0@(3,52)"
            };

            foreach (var uri in uris)
            {
                var facetsConfig = scaffolder.Create(uri);
                var uriName      = UriName(uri);
                var path         = Path.Join(DataFolder(), $"FacetsConfig_{uriName}.cs.txt");

                ScaffoldUtility.Dump(facetsConfig, path);
            }
        }
        public QuerySetup FakeCountOrContentQuerySetup(FacetsConfig2 facetsConfig)
        {
            List <string> fakeJoins        = FakeJoinsClause(5);
            var           joinsCompiler    = MockJoinsClauseCompiler(fakeJoins);
            var           fakePickCriteria = new List <string> {
                "ID IN (1,2,3)"
            };
            var mockPicksCompiler = MockPicksFilterCompiler(fakePickCriteria);
            var facetsGraph       = ScaffoldUtility.DefaultFacetsGraph(Registry);

            // FIXME: Should be mocked
            var compiler = new QuerySetupBuilder(facetsGraph, mockPicksCompiler.Object, joinsCompiler.Object);

            var querySetup = compiler.Build(
                facetsConfig,
                facetsConfig.TargetFacet,
                new List <string>(),
                null
                );

            return(querySetup);
        }
Example #11
0
        public async Task TestMethod_UsingSqliteInMemoryProvider_Success()
        {
            var folder = ScaffoldUtility.JsonDataFolder();

            using (var connection = new SqliteConnection("DataSource=:memory:;Foreign Keys = False")) {
                connection.Open();

                var options = new DbContextOptionsBuilder <FacetContext>()
                              .UseSqlite(connection) // Set the connection explicitly, so it won't be closed automatically by EF
                              .Options;

                using (var context = JsonSeededFacetContextFactory.Create(options, Fixture)) {
                    var count = await context.FacetGroups.CountAsync();

                    Assert.True(count > 0);
                    var u = await context.FacetGroups.FirstOrDefaultAsync(group => group.FacetGroupKey == "DOMAIN");

                    Assert.NotNull(u);
                    Assert.Equal(999, u.FacetGroupId);
                }
            }
        }
Example #12
0
        private static FacetContext CreateContext(string hostName, string databaseName)
        {
            var builder = ScaffoldUtility.GetDbContextOptionBuilder(hostName, databaseName);

            return(new FacetContext(builder.Options));
        }
Example #13
0
 private IFacetsGraph CreateFacetsGraphByFakeContext(IFacetContext testContext)
 {
     return(ScaffoldUtility.DefaultFacetsGraph(testContext));
 }
Example #14
0
 public static string SeadJsonDataFolder()
 {
     return(Path.Combine(ScaffoldUtility.GetRootFolder(), "Infrastructure", "Data", "Json"));
 }
        private string DataFolder()
        {
            string root = ScaffoldUtility.GetRootFolder();

            return(Path.Combine(root, "Infrastructure", "Data", "CSharp"));
        }