|  | @@ -0,0 +1,114 @@
 | 
	
		
			
				|  |  | +/* 
 | 
	
		
			
				|  |  | + */
 | 
	
		
			
				|  |  | +import { Observable, Subject, of } from "rxjs"
 | 
	
		
			
				|  |  | +import { ObservableStorage, SearchService } from "../services/query.service"
 | 
	
		
			
				|  |  | +import { Conditions, Storage } from "../services/query.service"
 | 
	
		
			
				|  |  | +import _ = require("lodash")
 | 
	
		
			
				|  |  | +import { DataPrepService } from "../services/dataprep.service"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +let query = new SearchService()
 | 
	
		
			
				|  |  | +let dataPrepService = new DataPrepService()
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +let mongoStorage: Storage = {
 | 
	
		
			
				|  |  | +    type: `MongoDB`,
 | 
	
		
			
				|  |  | +    url: `mongodb://192.168.100.59:27017/default`
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// Array inquiry: should return mutiple data
 | 
	
		
			
				|  |  | +let conditions1: Conditions[] = [
 | 
	
		
			
				|  |  | +    { 'msgTag': ['Incoming'] }
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// Basic inquiry, but with multi search: should return one data
 | 
	
		
			
				|  |  | +let conditions2: Conditions[] = [
 | 
	
		
			
				|  |  | +    { "msgId": "4f710c4b-a258-4c7e-a4b6-6095bb7028e9" },
 | 
	
		
			
				|  |  | +    { "msgLogDateTime": "2023-01-14T21:50:19.917Z" },
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// Value only argument! : should return one data
 | 
	
		
			
				|  |  | +let conditions3: Conditions[] = [
 | 
	
		
			
				|  |  | +    { "$regex": "cum incidunt maxime voluptatibus" }
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// Date Range inquiry: Should return 1 data
 | 
	
		
			
				|  |  | +let conditions4: Conditions[] = [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        "$dateRange": {
 | 
	
		
			
				|  |  | +            "startDate": "2022-04-29T00:00:00.000Z",
 | 
	
		
			
				|  |  | +            'endDate': "2022-04-30T00:00:00.000Z",
 | 
	
		
			
				|  |  | +            'column': "data.data.appData.msgDateTime"
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// Multi conditions except for regex search: Should return at least 1 data
 | 
	
		
			
				|  |  | +let conditions5: Conditions[] = [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        "$dateRange": {
 | 
	
		
			
				|  |  | +            "startDate": "2022-04-29T00:00:00.000Z",
 | 
	
		
			
				|  |  | +            'endDate': "2022-04-30T00:00:00.000Z",
 | 
	
		
			
				|  |  | +            'column': "data.data.appData.msgDateTime"
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    { 'msgTag': ['basic'] },
 | 
	
		
			
				|  |  | +    { "msgId": "4f710c4b-a258-4c7e-a4b6-6095bb7028e9" },
 | 
	
		
			
				|  |  | +    { "msgLogDateTime": "2023-01-14T21:50:19.917Z" }
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// Ultimate search. With all conditions piling at once: Should at least returns 1 data
 | 
	
		
			
				|  |  | +let conditions6: Conditions[] = [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        "$dateRange": {
 | 
	
		
			
				|  |  | +            "startDate": "2022-04-29T00:00:00.000Z",
 | 
	
		
			
				|  |  | +            'endDate': "2022-04-30T00:00:00.000Z",
 | 
	
		
			
				|  |  | +            'column': "data.data.appData.msgDateTime"
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    { "$regex": "maxime voluptatibus ad quasi eveniet" },
 | 
	
		
			
				|  |  | +    { 'msgTag': ['basic'] },
 | 
	
		
			
				|  |  | +    { "msgId": "4f710c4b-a258-4c7e-a4b6-6095bb7028e9" },
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// should return 1 data
 | 
	
		
			
				|  |  | +let conditions7: Conditions[] = [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        "$dateRange": {
 | 
	
		
			
				|  |  | +            "startDate": "2022-04-29T00:00:00.000Z",
 | 
	
		
			
				|  |  | +            'endDate': "2022-04-30T00:00:00.000Z",
 | 
	
		
			
				|  |  | +            'column': "data.data.appData.msgDateTime"
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    { "$regex": "maxime voluptatibus ad quasi eveniet" },
 | 
	
		
			
				|  |  | +    // { 'data.data.appData.msgTag': ['basic'] },
 | 
	
		
			
				|  |  | +    { "data.data.appData.msgId": "4f710c4b-a258-4c7e-a4b6-6095bb7028e9" },
 | 
	
		
			
				|  |  | +    { "msgLogDateTime": "2023-01-14T21:50:19.917Z" }
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +// should not return anything
 | 
	
		
			
				|  |  | +let conditions8: Conditions[] = [
 | 
	
		
			
				|  |  | +    {
 | 
	
		
			
				|  |  | +        "$dateRange": {
 | 
	
		
			
				|  |  | +            "startDate": "2022-04-29T00:00:00.000Z",
 | 
	
		
			
				|  |  | +            'endDate': "2022-04-30T00:00:00.000Z",
 | 
	
		
			
				|  |  | +            'column': "data.data.appData.msgDateTime"
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +    },
 | 
	
		
			
				|  |  | +    { "$regex": "maxime voluptatibus ad quasi eveniet" },
 | 
	
		
			
				|  |  | +    { 'msgTag': ['basic'] },
 | 
	
		
			
				|  |  | +    { "data.data.appDatamsgId": "4f710c4b-a258-4c7e-a4b6-6095bb7028e9" },
 | 
	
		
			
				|  |  | +    { "header.msgLogDateTime": "2023-01-14T21:50:19.917Z" }
 | 
	
		
			
				|  |  | +]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +let obsStorage : Subject<any> = new Subject()
 | 
	
		
			
				|  |  | +dataPrepService.loadObsData(mongoStorage, obsStorage)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +const testObs: ObservableStorage = {
 | 
	
		
			
				|  |  | +    type: "observable",
 | 
	
		
			
				|  |  | +    ref: obsStorage
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +query.query(testObs, ...conditions1).subscribe((element) => {
 | 
	
		
			
				|  |  | +    console.log(element.appData.msgId)
 | 
	
		
			
				|  |  | +})
 |