/// <summary> /// config the business logic /// </summary> public static void ConfigBusiness() { //从config文件加载数据库连接字符串 mongoHost = ConfigurationManager.AppSettings["MongoHost"]; mongoDatabase = ConfigurationManager.AppSettings["MongoDatabase"]; mongoCollection = ConfigurationManager.AppSettings["MongoCollection"]; cassandraInit = ConfigurationManager.ConnectionStrings["CassandraDB"].ConnectionString; //初始化StorageEngine var cassandraStorageEngine = new CassandraIndexEngine();//CassandraEngine cassandraStorageEngine.Init(cassandraInit); //初始化CoreApi MyCoreApi = CoreApi.GetInstance(); MyCoreApi.CoreService.Init(mongoHost, mongoDatabase, mongoCollection, (IStorageEngine)cassandraStorageEngine); //添加QueryPlugIn var pathQueryPlugIn = new PathQueryPlugIn(MyCoreApi.CoreService); MyCoreApi.AddQueryPlugin(pathQueryPlugIn); var idQueryPlugin = new IDQueryPlugIn(MyCoreApi.CoreService); MyCoreApi.AddQueryPlugin(idQueryPlugin); //添加DataTypePlugin var fixedWaveDataTypePlugin = new FixedWaveDataTypePlugin(MyCoreApi.CoreService); MyCoreApi.AddDataTypePlugin(fixedWaveDataTypePlugin); //添加ExpressionPlugin var expressionPlugin = new ExpressionPlugin(MyCoreApi.CoreService); MyCoreApi.AddDataTypePlugin(expressionPlugin); //将继承类在MongoDB中进行注册 MyCoreApi.CoreService.RegisterClassMap <FixedIntervalWaveSignal>(); //MyCoreApi.MyCoreService.RegisterClassMap<IntFixedIntervalWaveSignal>(); //MyCoreApi.MyCoreService.RegisterClassMap<DoubleFixedIntervalWaveSignal>(); //创建DTO映射 ConfigDtoMapping(); SetExpressionRoot(); }
public void IdQueryTest() { IDQueryPlugIn idQueryPlugIn = new IDQueryPlugIn(myCoreApi.MyCoreService); myCoreApi.AddQueryPlugin(idQueryPlugIn); IQueryPlugIn queryPlugin = null; IEnumerable <JDBCEntity> result = null; Uri uri = null; //0 uri = new Uri("jdbc:///idx"); try { queryPlugin = myCoreApi.GetBestQueryPlugin(uri); } catch (Exception e) { Assert.AreEqual(ErrorMessages.NotValidURI, e.Message); } //1 uri = new Uri("jdbc:///id/"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(0, result.Count()); //2 uri = new Uri("jdbc:///id/?name=*"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(2, result.Count()); //3 uri = new Uri("jdbc:///id/?name=exp1"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(exp1.Id, result.FirstOrDefault().Id); //4 uri = new Uri("jdbc:///id/?name=*&recursive=true"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(8, result.Count()); //5 uri = new Uri("jdbc:///id/?name=exp2-1&recursive=true"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(0, result.Count()); //6 uri = new Uri("jdbc:///id/?name=exp1-2&recursive=true"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(2, result.Count()); //7 uri = new Uri("jdbc:///id/" + exp1.Id + "?name=*"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(3, result.Count()); //8 uri = new Uri("jdbc:///id/" + exp1.Id + "?name=*&recursive=true"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(4, result.Count()); //9 uri = new Uri("jdbc:///id/" + exp1.Id + "?name=sig1"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(sig11.Id, result.FirstOrDefault().Id); //10 uri = new Uri("jdbc:///id/" + exp1.Id + "?name=sig1&recursive=true"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(2, result.Count()); //11 uri = new Uri("jdbc:///id/" + exp1.Id); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(exp1.Id, result.FirstOrDefault().Id); }
public void IdQueryTest() { JDBCEntity exp1 = new Experiment("exp1"); JDBCEntity sig11 = new Signal("sig1"); JDBCEntity exp11 = new Experiment("exp1-1"); JDBCEntity exp12 = new Experiment("exp1-2"); JDBCEntity sig121 = new Signal("sig1"); JDBCEntity exp2 = new Experiment("exp2"); JDBCEntity exp21 = new Experiment("exp1-2"); JDBCEntity sig21 = new Signal("sig1"); myCoreApi.AddOneToExperimentAsync(Guid.Empty, exp1).Wait(); myCoreApi.AddOneToExperimentAsync(exp1.Id, sig11).Wait(); myCoreApi.AddOneToExperimentAsync(exp1.Id, exp11).Wait(); myCoreApi.AddOneToExperimentAsync(exp1.Id, exp12).Wait(); myCoreApi.AddOneToExperimentAsync(exp12.Id, sig121).Wait(); myCoreApi.AddOneToExperimentAsync(Guid.Empty, exp2).Wait(); myCoreApi.AddOneToExperimentAsync(exp2.Id, exp21).Wait(); myCoreApi.AddOneToExperimentAsync(exp2.Id, sig21).Wait(); // exp1 // ===sig1 // ===exp1-1 // ===exp1-2 // ======sig1 // exp2 // ===exp2-1 // ===sig1 IDQueryPlugIn idQueryPlugIn = new IDQueryPlugIn(myCoreApi.CoreService); myCoreApi.AddQueryPlugin(idQueryPlugIn); IQueryPlugIn queryPlugin = null; IEnumerable <JDBCEntity> result = null; Uri uri = null; //0 uri = new Uri("jdbc:///idx"); try { queryPlugin = myCoreApi.GetBestQueryPlugin(uri); } catch (Exception e) { Assert.AreEqual(ErrorMessages.NotValidURIError, e.Message); } //1 uri = new Uri("jdbc:///id/"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(0, result.Count()); //2 uri = new Uri("jdbc:///id/" + exp1.Id + "?name=*"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(3, result.Count()); //3 uri = new Uri("jdbc:///id/" + exp1.Id + "?name=*&recursive=true"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(4, result.Count()); //4 uri = new Uri("jdbc:///id/" + exp1.Id + "?name=sig1"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(sig11.Id, result.FirstOrDefault().Id); //5 uri = new Uri("jdbc:///id/" + exp1.Id + "?name=sig1&recursive=true"); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(2, result.Count()); //6 uri = new Uri("jdbc:///id/" + exp1.Id); queryPlugin = myCoreApi.GetBestQueryPlugin(uri); Assert.AreEqual(idQueryPlugIn, queryPlugin); result = myCoreApi.FindNodeByUriAsync(uri).Result; Assert.AreEqual(exp1.Id, result.FirstOrDefault().Id); }