import * as fs from 'fs' import { Subject } from 'rxjs'; import { ColorCode, ReportStatus } from '../interfaces/general.interface'; import { GrpcService } from '../services/grpc.service'; import { FisErrorHandlingService } from '../services/error.handling.service.fis'; // Subject for bidirectional communication const errorHandlingService: FisErrorHandlingService = new FisErrorHandlingService() const grpcService: GrpcService = new GrpcService() const messagesJSON: any = fs.readFileSync('payload.json') let parsedMessages: any[] = JSON.parse(messagesJSON) // load the fake messages generated for this trial let messageToBeReleased: Subject = new Subject() // Sample message to be transmitted over to target server let statusControl: Subject = new Subject() // Listening for error events and states let dataMessages = stream() // Emulate messges to be sent over to target server let server1: string = 'localhost:3000' let unaryRequestSubject: Subject = new Subject() /* Server Streaming Test case */ // errorHandlingService.handleMessage(unaryRequestSubject, statusControl).subscribe((messages) => { // messageToBeReleased.next(messages) // }) // grpcService.createGrpcInstance(server1, messageToBeReleased, statusControl, { instanceType: 'client', serviceMethod: 'server streaming' }) /* Bidirectional streaming test case */ errorHandlingService.handleMessage(dataMessages, statusControl).subscribe((messages) => { messageToBeReleased.next(messages) }) grpcService.createGrpcInstance(server1, messageToBeReleased, statusControl, { instanceType: 'client', serviceMethod: 'bidirectional' }) let testMessageRequest = { appLogLocId: "68ca0bae-2acd-44f2-b54c-836d6af92890", appData: { msgId: "74023eec-2cf9-422c-ab15-e65c6e08b213", msgLogDateTime: "2023-09-10T17:07:35.262Z", msgDateTime: "2023-01-16T04:51:29.595Z", msgTag: [ "free", "enterprise", "rich" ], msgPayload: "Autus ducimus deinde thema. Succurro tui denuncio nostrum summisse aiunt statua. Cribro commemoro utique.\nUlterius apparatus copia argentum solium textor denego inventore thymbra aegre. Acsi cometes color perspiciatis. Pax caste derelinquo amicitia tui molestiae culpo cohaero.\nRepudiandae desipio tero decretum atrocitas. Trado aptus sunt utor arcus quos molestias. Tabella enim curto clibanus cavus usus villa.\nCondico viriliter reprehenderit unus curriculum. Numquam velut adsuesco adversus veritatis callide delibero umquam vulariter deporto. Inventore astrum cavus ambulo creptio.\nSuspendo demo carus fuga. Decerno dolores deficio accusator. Aestus quod dedico contigo magni." } } setTimeout(() => { // messageToBeReleased.next(testMessageRequest) }, 1000) // setTimeout(() => { // unaryRequestSubject.next(testMessageRequest) // }, 7000) // this is just to publish an array of fake data as a Subject function stream(): Subject { let result: Subject = new Subject() let messages: any[] = parsedMessages let count = 0 const intervalId = setInterval(() => { result.next(messages[count]); count++; if (count >= 1000) { clearInterval(intervalId); result.complete(); } }, 500) return result }