/// <summary>
        /// Activate the database instance
        /// </summary>
        public void Activate()
        {
            if (DesignerProperties.IsInDesignTool)
            {
                return;
            }

            if (Debugger.IsAttached)
            {
                this.sterlingDefaultLogger = new SterlingDefaultLogger(SterlingLogLevel.Verbose);
            }

            this.sterlingEngine = new SterlingEngine();

            // custom serializer for types
            this.sterlingEngine.SterlingDatabase.RegisterSerializer<TypeSerializer>();

            // change this for more verbose messages
            this.sterlingDefaultLogger = new SterlingDefaultLogger(SterlingLogLevel.Information);

            this.sterlingEngine.Activate();

            this.Database = this.sterlingEngine.SterlingDatabase.RegisterDatabase<VBForumsMetroDatabase>(new IsolatedStorageDriver());

            // see if we need to load it
            VBForumsMetroDatabase.CheckAndCreate(this.Database);
        }
Exemplo n.º 2
0
        static void Main(string[] args)
        {
            var engine = new SterlingEngine();
            var logger = new SterlingDefaultLogger(SterlingLogLevel.Information);

            engine.Activate();
            var db = engine.SterlingDatabase.RegisterDatabase <CoolDatabase>(new MemoryDriver());

            db.RegisterTrigger(new GuidTrigger <CoolColor>());
            CoolDatabase.PopulateDatabase(db);
            var colorList = db.Query <CoolColor, Guid>().OrderBy(c => c.LazyValue.Value.Name).Select(c => c.LazyValue.Value).ToList();

            foreach (var color in colorList)
            {
                Console.WriteLine($"Loaded color {color.Name} with database-generated key {color.Id}.");
            }
            var idx = (new Random().Next(0, colorList.Count - 1));

            Console.WriteLine($"Picked random color {colorList[idx].Name}");
            var combos    = db.Query <Combo, int>().Where(c => c.LazyValue.Value.Color.Id == colorList[idx].Id).Select(c => c.LazyValue.Value);
            var comboList = combos.Select(c => $"{c.Color.Name} {c.Planet.Name} {c.Cat.Name}");

            foreach (var combo in comboList.OrderBy(c => c))
            {
                Console.WriteLine($"Found awesome combo {combo}.");
            }
        }
Exemplo n.º 3
0
 /// <summary>
 /// Handles the application end event.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="System.EventArgs"/> 
 /// instance containing the event data.</param>
 private static void HandleApplicationEnd(Object sender, EventArgs e)
 {
     s_logger.Detach();
     s_engine.Dispose();
     s_database = null;
     s_engine   = null;
 }
        /// <summary>
        /// Activate the database instance
        /// </summary>
        public void Activate()
        {
            if (DesignerProperties.IsInDesignTool)
            {
                return;
            }

            if (Debugger.IsAttached)
            {
                this.sterlingDefaultLogger = new SterlingDefaultLogger(SterlingLogLevel.Verbose);
            }

            this.sterlingEngine = new SterlingEngine();

            // custom serializer for types
            this.sterlingEngine.SterlingDatabase.RegisterSerializer <TypeSerializer>();

            // change this for more verbose messages
            this.sterlingDefaultLogger = new SterlingDefaultLogger(SterlingLogLevel.Information);

            this.sterlingEngine.Activate();

            this.Database = this.sterlingEngine.SterlingDatabase.RegisterDatabase <VBForumsMetroDatabase>(new IsolatedStorageDriver());

            // see if we need to load it
            VBForumsMetroDatabase.CheckAndCreate(this.Database);
        }
Exemplo n.º 5
0
 /// <summary>
 /// Handles the application end event.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="System.EventArgs"/>
 /// instance containing the event data.</param>
 private static void HandleApplicationEnd(Object sender, EventArgs e)
 {
     s_logger.Detach();
     s_engine.Dispose();
     s_database = null;
     s_engine   = null;
 }
Exemplo n.º 6
0
 /// <summary>
 /// Handles the application startup event.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="System.Windows.StartupEventArgs"/> 
 /// instance containing the event data.</param>
 private static void HandleApplicationStartup(Object sender, StartupEventArgs e)
 {
     s_engine = new SterlingEngine();
     s_logger = new SterlingDefaultLogger(SterlingLogLevel.Information);
     s_engine.Activate();
     s_database = s_engine.SterlingDatabase.RegisterDatabase<AppDatabase>();
 }
Exemplo n.º 7
0
 public void TestInit()
 {
     _engine = Factory.NewEngine();
     _engine.Activate();
     _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, GetDriver());
     _databaseInstance.PurgeAsync().Wait();
 }
Exemplo n.º 8
0
 /// <summary>
 /// Handles the application startup event.
 /// </summary>
 /// <param name="sender">The sender.</param>
 /// <param name="e">The <see cref="System.Windows.StartupEventArgs"/>
 /// instance containing the event data.</param>
 private static void HandleApplicationStartup(Object sender, StartupEventArgs e)
 {
     s_engine = new SterlingEngine();
     s_logger = new SterlingDefaultLogger(SterlingLogLevel.Information);
     s_engine.Activate();
     s_database = s_engine.SterlingDatabase.RegisterDatabase <AppDatabase>();
 }
        internal static void Activate()
        {
            if (!DesignerProperties.IsInDesignTool)
            {
                _engine = new SterlingEngine();
                try
                {
                    // engine could be already activated (in main application or some referenced dll);
                    _engine.Activate();
                }
                catch (SterlingActivationException ex)
                {
                }

                _driver = new IsolatedStorageDriver("EPubReader/");

                try
                {
                    _database = _engine.SterlingDatabase.GetDatabase("EPubReader Database");
                }
                catch (SterlingDatabaseNotFoundException ex)
                {
                    _database = _engine.SterlingDatabase.RegisterDatabase <Database>(_driver);
                }
            }
        }
Exemplo n.º 10
0
        /// <summary>
        /// Called by an application in order to initialize the application extension service.
        /// </summary>
        /// <param name="context">Provides information about the application state. </param>
        public void StartService(ApplicationServiceContext context)
        {
            if (DesignerProperties.IsInDesignTool) return;
			DateTime start = DateTime.Now;
            _engine = new SterlingEngine();
            Current = this;
        }
Exemplo n.º 11
0
 public void TestInit()
 {
     _engine = Factory.NewEngine();
     _engine.SterlingDatabase.RegisterSerializer <TestSerializer>();
     _engine.Activate();
     _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, GetDriver());
 }
Exemplo n.º 12
0
 public void TestInit()
 {
     _engine = Factory.NewEngine();
     _engine.Activate();
     _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <DirtyDatabase>(TestContext.TestName, GetDriver());
     ((DirtyDatabase)_databaseInstance).Predicate = model => true;
     _databaseInstance.PurgeAsync().Wait();
 }
Exemplo n.º 13
0
 public void TestInit()
 {
     _engine = Factory.NewEngine();
     _engine.SterlingDatabase.RegisterSerializer <SupportSerializer>();
     _engine.Activate();
     DatabaseInstance = _engine.SterlingDatabase.RegisterDatabase <CustomSerializerDatabase>(TestContext.TestName, GetDriver());
     DatabaseInstance.PurgeAsync().Wait();
 }
        public static ISterlingDatabaseInstance CreateDatabase()
        {
            var engine = new SterlingEngine(new SterlingPlatformAdapter());

            engine.SterlingDatabase.RegisterSerializer <SterlingContentSerializer>();
            engine.Activate();
            return(engine.SterlingDatabase.RegisterDatabase <ContentStoreDB>("TestDB", new MemoryDriver()));
        }
Exemplo n.º 15
0
 /// <summary>
 /// 启动本地数据库服务
 /// </summary>
 /// <param name="context">应用程序池</param>
 public void StartService(ApplicationServiceContext context)
 {
     if (DesignerProperties.IsInDesignTool)
     { 
         return; 
     }
     sengine = new SterlingEngine();
     Current = this;
 }
Exemplo n.º 16
0
 public void Setup()
 {
     Tasks = new CompositeDisposable();
     DBEngine = new SterlingEngine().Add(Tasks);
     DBEngine.Activate();
     // dbのroot
     var date = DateTime.Parse("2011/10/27");
     Database = new LogDBFileInstance(DBEngine, date,Const.DBPath);
 }
Exemplo n.º 17
0
 /// <summary>
 /// 启动本地数据库服务
 /// </summary>
 /// <param name="context">应用程序池</param>
 public void StartService(ApplicationServiceContext context)
 {
     if (DesignerProperties.IsInDesignTool)
     {
         return;
     }
     sengine = new SterlingEngine();
     Current = this;
 }
Exemplo n.º 18
0
        public void StartService(ApplicationServiceContext context)
        {
            _engine = new SterlingEngine();
            _logger = new SterlingDefaultLogger(SterlingLogLevel.Information);

            //Создаем локальную базу данных:
            LocalDataBase = new LocalDB();

            Current = this;
        }
Exemplo n.º 19
0
        private void RegisterDatabase(IocContainer container)
        {
            SterlingEngine engine =
                new SterlingEngine();
            engine.Activate();

            container.RegisterInstance<Domain.Database>(engine.SterlingDatabase.RegisterDatabase<Domain.Database>(new FileSystemDriver()) as Domain.Database);
            container.Register<Domain.Db.ITestQuery, Domain.Db.TestQuery>();
            container.Register<Domain.Db.ISubjectQuery, Domain.Db.SubjectQuery>();
        }
Exemplo n.º 20
0
        public void Shutdown()
        {
            if (_engine == null)
            {
                return;
            }

            _engine.Dispose();
            _engine   = null;
            _database = null;
        }
Exemplo n.º 21
0
        internal static void Deactivate()
        {
            if (_engine != null)
            {
                _engine.Dispose();
            }

            _engine   = null;
            _driver   = null;
            _database = null;
        }
Exemplo n.º 22
0
 public void TestInit()
 {
     //_startTime = DateTime.Now;
     _engine = Factory.NewEngine();
     _engine.Activate();
     _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>("async");
     _modelList        = new List <TestModel>();
     for (var i = 0; i < MODELS; i++)
     {
         _modelList.Add(TestModel.MakeTestModel());
     }
 }
        /// <summary>
        /// Deactivate the database instance
        /// </summary>
        public void Deactivate()
        {
            if (Debugger.IsAttached && this.sterlingDefaultLogger != null)
            {
                this.sterlingDefaultLogger.Detach();
            }

            this.sterlingEngine.Dispose();

            this.Database       = null;
            this.sterlingEngine = null;
        }
Exemplo n.º 24
0
 public void TestInit()
 {
     _engine = Factory.NewEngine();
     _engine.Activate();
     _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, GetDriver());
     _modelList        = new List <TestModel>();
     for (var i = 0; i < 10; i++)
     {
         _modelList.Add(TestModel.MakeTestModel());
         _databaseInstance.SaveAsync(_modelList[i]).Wait();
     }
 }
Exemplo n.º 25
0
        public void TestInit()
        {
            _engine = Factory.NewEngine();
            _engine.Activate();
            _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TriggerDatabase>(TestContext.TestName, GetDriver());
            _databaseInstance.PurgeAsync().Wait();

            // get the next key in the database for auto-assignment
            var nextKey = _databaseInstance.Query <TriggerClass, int>().Any() ?
                          (from keys in _databaseInstance.Query <TriggerClass, int>()
                           select keys.Key).Max() + 1 : 1;

            _databaseInstance.RegisterTrigger(new TriggerClassTestTrigger(nextKey));
        }
        public void ActivateEngine()
        {
            _engine = new SterlingEngine();
            _engine.SterlingDatabase.RegisterSerializer<DefaultSerializer>();
            _logger = new SterlingDefaultLogger(SterlingLogLevel.Information);
            _engine.Activate();

            _database = _engine.SterlingDatabase.RegisterDatabase<CoachesDatabase>(new IsolatedStorageDriver());

            _database.RegisterTrigger(new IdentityTrigger<EventDto>(_database));
            _database.RegisterTrigger(new IdentityTrigger<PracticeDrillDto>(_database));
            _database.RegisterTrigger(new IdentityTrigger<TeamDto>(_database));
            _database.RegisterTrigger(new IdentityTrigger<LocationDto>(_database));
            _database.RegisterTrigger(new IdentityTrigger<PlayerDto>(_database));
            _database.RegisterTrigger(new IdentityTrigger<SportDto>(_database));
        }
Exemplo n.º 27
0
        public void StartService()
        {
            _engine = new SterlingEngine();

            if (Debugger.IsAttached)
            {
                _logger = new SterlingDefaultLogger(SterlingLogLevel.Verbose);
            }

            _engine.Activate();
            Database = _engine.SterlingDatabase.RegisterDatabase<BizcardDatabase>(_driver);
            Database.RegisterTrigger(new IdentityTrigger<Contact>(Database));
            Database.RegisterTrigger(new IdentityTrigger<Group>(Database));

            Current = this;
        }
Exemplo n.º 28
0
        public void TestSaveLateBoundTable()
        {
            // test saving and reloading
            var expected = new TestLateBoundTable {
                Id = 1, Data = Guid.NewGuid().ToString()
            };

            _databaseInstance.RegisterTableDefinition(
                _databaseInstance.CreateTableDefinition <TestLateBoundTable, int>(t => t.Id));

            _databaseInstance.SaveAsync(expected).Wait();

            var actual = _databaseInstance.LoadAsync <TestLateBoundTable>(expected.Id).Result;

            Assert.NotNull(actual);                   //Load failed.");

            Assert.Equal(expected.Id, actual.Id);     //Load failed: key mismatch.");
            Assert.Equal(expected.Data, actual.Data); //Load failed: data mismatch.");

            _databaseInstance.FlushAsync().Wait();

            _engine.Dispose();
            var driver = _databaseInstance.Driver;

            _databaseInstance = null;

            // bring it back up
            _engine = Factory.NewEngine();
            _engine.Activate();
            _databaseInstance =
                _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, driver);

            // do this in a different order
            _databaseInstance.RegisterTableDefinition(
                _databaseInstance.CreateTableDefinition <TestSecondLateBoundTable, int>(t => t.Id));

            _databaseInstance.RegisterTableDefinition(
                _databaseInstance.CreateTableDefinition <TestLateBoundTable, int>(t => t.Id));

            actual = _databaseInstance.LoadAsync <TestLateBoundTable>(expected.Id).Result;

            Assert.NotNull(actual);                   //Load failed after restart.");

            Assert.Equal(expected.Id, actual.Id);     //Load failed: key mismatch after restart.");
            Assert.Equal(expected.Data, actual.Data); //Load failed: data mismatch after restart.");
        }
Exemplo n.º 29
0
        public static void test()
        {
            SterlingEngine engine = new SterlingEngine();

            engine.Activate();
            var dbInstance = engine.SterlingDatabase.RegisterDatabase <WeaponDBInstance>(
                new FileSystemDriver("weaponDB/"));

            dbInstance.Purge();
            HTMLParser p = new HTMLParser(@"/wiki/List_of_battle_rifles", @"https://en.wikipedia.org");
            var        x = p.ProcessArticle().ToList();


            x.ForEach(w =>
            {
                dbInstance.Save <Weapon>(w);
            });

            var data = dbInstance.Query <Weapon, string>();
            //Weapon weapon = dbInstance.Load<Weapon>("AK-72");
        }
Exemplo n.º 30
0
 public LogDBFileInstance(SterlingEngine engine, DateTime date, string rootPath)
     : this(engine, date, new PathProvider(rootPath))
 {
 }
Exemplo n.º 31
0
 public static void RestartEngine()
 {
     _engine = new SterlingEngine();
     _engine.Activate();
     Current = _engine.SterlingDatabase.RegisterDatabase <UsdaDatabase>(new MemoryDriver());
 }
Exemplo n.º 32
0
 /// <summary>
 /// Called by an application immediately after the <see cref="E:System.Windows.Application.Exit"/> event occurs.
 /// </summary>
 public void Exited()
 {
     Dispose();
     _engine = null;
     return;
 }
Exemplo n.º 33
0
 // Code to execute when the application is closing (eg, user hit Back)
 // This code will not execute when the application is deactivated
 private void Application_Closing(object sender, ClosingEventArgs e)
 {
     Database.Flush();
     _logger.Detach();
     _engine.Dispose();
     Database = null;
     _engine = null;
 }
Exemplo n.º 34
0
 public SterlingDatabase(SterlingEngine engine)
 {
     Engine       = engine;
     TypeResolver = new TableTypeResolver();
     _serializer  = new AggregateSerializer(engine.PlatformAdapter);
 }
        /// <summary>
        /// Deactivate the database instance
        /// </summary>
        public void Deactivate()
        {
            if (Debugger.IsAttached && this.sterlingDefaultLogger != null)
            {
                this.sterlingDefaultLogger.Detach();
            }

            this.sterlingEngine.Dispose();

            this.Database = null;
            this.sterlingEngine = null;
        }
 public void DeactivateEngine()
 {
     _logger.Detach();
     _engine.Dispose();
     _database = null;
     _engine = null;
 }
Exemplo n.º 37
0
 public void Exited()
 {
     Dispose();
     _engine = null;
     return;
 }
Exemplo n.º 38
0
 public LogDBFileInstance(SterlingEngine engine, DateTime date, PathProvider pathProvider)
 {
     DBPath = string.Format("logger/{0:yyyyMM}/", date.ToUniversalTime());
     var db = engine.SterlingDatabase;
     Instance = db.RegisterDatabase<LogDB>(new FileSystemDriver(pathProvider, DBPath));
 }
Exemplo n.º 39
0
        public void TestBackupAndRestore()
        {
            var driver = GetDriver();

            // activate the engine and store the data
            _engine = Factory.NewEngine();
            _engine.Activate();
            _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, driver);

            // test saving and reloading
            var expected = TestModel.MakeTestModel();

            _databaseInstance.SaveAsync(expected).Wait();

            // now back it up
            var memStream = new MemoryStream();

            byte[] databaseBuffer;

            using (var binaryWriter = new BinaryWriter(memStream))
            {
                _engine.SterlingDatabase.BackupAsync <TestDatabaseInstance>(binaryWriter).Wait();
                binaryWriter.Flush();
                databaseBuffer = memStream.ToArray();
            }

            // now purge the database
            _databaseInstance.PurgeAsync().Wait();

            var actual = _databaseInstance.LoadAsync <TestModel>(expected.Key).Result;

            // confirm the database is gone
            Assert.IsNull(actual, "Purge failed, was able to load the test model.");

            _databaseInstance = null;

            // shut it all down
            _engine.Dispose();
            _engine = null;

            // get a new engine
            _engine = Factory.NewEngine();

            // activate it and grab the database again
            _engine.Activate();
            _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, driver);

            // restore it
            _engine.SterlingDatabase.RestoreAsync <TestDatabaseInstance>(new BinaryReader(new MemoryStream(databaseBuffer))).Wait();

            _engine.Dispose();
            _engine = null;

            // get a new engine
            _engine = Factory.NewEngine();

            // activate it and grab the database again
            _engine.Activate();
            _databaseInstance = _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, driver);

            actual = _databaseInstance.LoadAsync <TestModel>(expected.Key).Result;

            Assert.IsNotNull(actual, "Load failed.");

            Assert.AreEqual(expected.Key, actual.Key, "Load failed: key mismatch.");
            Assert.AreEqual(expected.Data, actual.Data, "Load failed: data mismatch.");
            Assert.IsNull(actual.Data2, "Load failed: suppressed data property not valid on de-serialize.");
            Assert.IsNotNull(actual.SubClass, "Load failed: sub class is null.");
            Assert.IsNull(actual.SubClass2, "Load failed: supressed sub class should be null.");
            Assert.AreEqual(expected.SubClass.NestedText, actual.SubClass.NestedText,
                            "Load failed: sub class text mismtach.");
            Assert.AreEqual(expected.SubStruct.NestedId, actual.SubStruct.NestedId,
                            "Load failed: sub struct id mismtach.");
            Assert.AreEqual(expected.SubStruct.NestedString, actual.SubStruct.NestedString,
                            "Load failed: sub class string mismtach.");
        }
Exemplo n.º 40
0
 public void Init()
 {
     _engine = Factory.NewEngine();
     _engine.Activate();
     _database = _engine.SterlingDatabase.RegisterDatabase <NestedInstancesDatabase>(TestContext.TestName, GetDriver());
 }
Exemplo n.º 41
0
 private static void _ActivateEngine()
 {
     _engine = new SterlingEngine();
     _engine.Activate();
     _database = _engine.SterlingDatabase.RegisterDatabase<TodoStore>();
 }
Exemplo n.º 42
0
        private void SetupTheDatabase()
        {
            // create the sterling engine
            _engine = new SterlingEngine();

            // create a logger for the sterling db
            _logger = new SterlingDefaultLogger(SterlingLogLevel.Verbose);

            // activate the sterling engine
            _engine.Activate();

            // Register your database with the sterling engine and specify its persistence in isolated storage
            Database = _engine.SterlingDatabase.RegisterDatabase<ItemsDatabaseInstance>(new IsolatedStorageDriver());
        }
Exemplo n.º 43
0
 private static void _DeactivateEngine()
 {
     _engine.Dispose();
     _database = null;
     _engine = null;
 }
Exemplo n.º 44
0
        public void TestSaveShutdownReInitialize()
        {
            _databaseInstance.PurgeAsync().Wait();

            // test saving and reloading
            var expected1 = TestModel.MakeTestModel();
            var expected2 = TestModel.MakeTestModel();

            expected2.GuidNullable = null;

            var expectedComplex = new TestComplexModel
            {
                Id     = 5,
                Dict   = new Dictionary <string, string>(),
                Models = new ObservableCollection <TestModel>()
            };

            for (var x = 0; x < 10; x++)
            {
                expectedComplex.Dict.Add(Guid.NewGuid().ToString(), Guid.NewGuid().ToString());
                expectedComplex.Models.Add(TestModel.MakeTestModel());
            }

            _databaseInstance.SaveAsync(expected1).Wait();
            _databaseInstance.SaveAsync(expected2).Wait();
            _databaseInstance.SaveAsync(expectedComplex).Wait();

            _databaseInstance.FlushAsync().Wait();

            // shut it down

            _engine.Dispose();
            var driver = _databaseInstance.Driver;

            _databaseInstance = null;

            // bring it back up
            _engine = Factory.NewEngine();
            _engine.Activate();
            _databaseInstance =
                _engine.SterlingDatabase.RegisterDatabase <TestDatabaseInstance>(TestContext.TestName, driver);

            var actual1 = _databaseInstance.LoadAsync <TestModel>(expected1.Key).Result;
            var actual2 = _databaseInstance.LoadAsync <TestModel>(expected2.Key).Result;

            Assert.NotNull(actual1);                                    //Load failed for 1.");
            Assert.Equal(expected1.Key, actual1.Key);                   //Load failed (1): key mismatch.");
            Assert.Equal(expected1.Data, actual1.Data);                 //Load failed(1): data mismatch.");
            Assert.NotNull(actual1.SubClass);                           //Load failed (1): sub class is null.");
            Assert.Equal(expected1.SubClass.NestedText,
                         actual1.SubClass.NestedText);                  //Load failed (1): sub class text mismtach.");
            Assert.Equal(expected1.GuidNullable, actual1.GuidNullable); //Load failed (1): nullable Guid mismtach.");

            Assert.NotNull(actual2);                                    //Load failed for 2.");
            Assert.Equal(expected2.Key, actual2.Key);                   //Load failed (2): key mismatch.");
            Assert.Equal(expected2.Data, actual2.Data);                 //Load failed (2): data mismatch.");
            Assert.NotNull(actual2.SubClass);                           //Load failed (2): sub class is null.");
            Assert.Equal(expected2.SubClass.NestedText,
                         actual2.SubClass.NestedText);                  //Load failed (2): sub class text mismatch.");
            Assert.Null(expected2.GuidNullable);                        //Load failed (2): nullable Guid was not loaded as null.");

            //insert a third
            var expected3 = TestModel.MakeTestModel();

            _databaseInstance.SaveAsync(expected3).Wait();

            actual1 = _databaseInstance.LoadAsync <TestModel>(expected1.Key).Result;
            actual2 = _databaseInstance.LoadAsync <TestModel>(expected2.Key).Result;
            var actual3 = _databaseInstance.LoadAsync <TestModel>(expected3.Key).Result;

            Assert.NotNull(actual1);                    //Load failed for 1.");
            Assert.Equal(expected1.Key, actual1.Key);   //Load failed (1): key mismatch.");
            Assert.Equal(expected1.Data, actual1.Data); //Load failed(1): data mismatch.");
            Assert.NotNull(actual1.SubClass);           //Load failed (1): sub class is null.");
            Assert.Equal(expected1.SubClass.NestedText,
                         actual1.SubClass.NestedText);  //Load failed (1): sub class text mismtach.");

            Assert.NotNull(actual2);                    //Load failed for 2.");
            Assert.Equal(expected2.Key, actual2.Key);   //Load failed (2): key mismatch.");
            Assert.Equal(expected2.Data, actual2.Data); //Load failed (2): data mismatch.");
            Assert.NotNull(actual2.SubClass);           //Load failed (2): sub class is null.");
            Assert.Equal(expected2.SubClass.NestedText,
                         actual2.SubClass.NestedText);  //Load failed (2): sub class text mismtach.");

            Assert.NotNull(actual3);                    //Load failed for 3.");
            Assert.Equal(expected3.Key, actual3.Key);   //Load failed (3): key mismatch.");
            Assert.Equal(expected3.Data, actual3.Data); //Load failed (3): data mismatch.");
            Assert.NotNull(actual3.SubClass);           //Load failed (3): sub class is null.");
            Assert.Equal(expected3.SubClass.NestedText,
                         actual3.SubClass.NestedText);  //Load failed (3): sub class text mismtach.");

            // load the complex
            var actualComplex = _databaseInstance.LoadAsync <TestComplexModel>(5).Result;

            Assert.NotNull(actualComplex);      //Load failed (complex): object is null.");
            Assert.Equal(5, actualComplex.Id);  //Load failed: id mismatch.");
            Assert.NotNull(actualComplex.Dict); //Load failed: dictionary is null.");
            foreach (var key in expectedComplex.Dict.Keys)
            {
                var value = expectedComplex.Dict[key];
                Assert.True(actualComplex.Dict.Contains(key)); //Load failed: dictionary is missing key.");
                Assert.Equal(value, actualComplex.Dict[key]);  //Load failed: dictionary has invalid value.");
            }

            Assert.NotNull(actualComplex.Models); //Load failed: complex missing the model collection.");

            foreach (var model in expectedComplex.Models)
            {
                var targetModel = actualComplex.Models.Where(m => m.Key.Equals(model.Key)).FirstOrDefault();
                Assert.NotNull(targetModel);                   //Load failed for nested model.");
                Assert.Equal(model.Key, targetModel.Key);      //Load failed for nested model: key mismatch.");
                Assert.Equal(model.Data, targetModel.Data);    //Load failed for nested model: data mismatch.");
                Assert.NotNull(targetModel.SubClass);          //Load failed for nested model: sub class is null.");
                Assert.Equal(model.SubClass.NestedText,
                             targetModel.SubClass.NestedText); //Load failed for nested model: sub class text mismtach.");
            }
        }
Exemplo n.º 45
0
        private void InitialiseDatabase()
        {

            SterlingEngine engine = new SterlingEngine();
            engine.Activate();

            _container.RegisterInstance<SterlingEngine>(engine);
            _container.RegisterInstance<Database>(engine.SterlingDatabase.RegisterDatabase<Database>(new FileSystemDriver()) as Database);
            _container.Register<ISubjectQuery, SubjectQuery>();
            _container.Register<ISubjects, Subjects>();
            _container.Register<ITests, Tests>();
            _container.Register<ITestQuery, TestQuery>();
        }