UNPKG

omft-utils

Version:

Various utility function to be used with Oracle Managed File Transfer(MFT)

288 lines (251 loc) 8.92 kB
// Require everything including our function var chai = require('chai'); var expect = chai.expect; var outils = require('..'); var path = require('path'); describe('omft-utils test suite', function() { var f1 = './test/binfile'; var f2 = 'README.md'; var f4 = './test/genRequestTest.data'; var f11 = 'test/template.data'; it('TEST 1: Return true for file ' +f1, function() { var r1 = outils.isBinary(f1); expect(r1).to.be.true; // verify results }); it('TEST 2: Return false for file ' + f2, function() { var r2 = outils.isBinary(f2); expect(r2).to.be.false; // verify results }); it('TEST 3: Parse input parameters from MFT RunScript callout ', function() { var ar = []; ar[0] = 'file=test.xml'; ar[1] = 'outfile=out.xml outdir=/tmp/mft'; ar[2] = ' '; ar[3] = 'a='; ar[4] = 'bb'; ar[5] = ' cc=dddd e'; ar[6] = 'Passwords=pass1 pass2'; var obj = outils.parseCalloutArgs(ar); //console.log(ar); //console.log(obj); var resmatch = 'test.xml out.xml /tmp/mft pass1 pass2'; var r3 = obj.file +' ' +obj.outfile + ' ' +obj.outdir +' ' +obj.passwords; expect(r3).to.equal(resmatch); // verify results }); it('TEST 4: Validate templatedir and generated request body for dir test/', function() { var mysize = 1320; var opts = { "type": "SOAP", "file": f4, "maxsize": 26214400, "templatedir": __dirname }; outils.genUploadRequest(opts, function(er, fsz, bdy) { if (er) { console.log('genUploadRequestTest SOAP: error ' +er); throw er; } //console.log('genUploadRequestTest SOAP: body:' +bdy); //console.log('genUploadRequestTest templatedir ' +opts.templatedir); var r5 = bdy.length; expect(r5).to.equal(mysize); // verify results }); }); it('TEST 5: Validate varSub templating ', function() { var mystr = 'Hello Dave it is now '; var ts = new Date().toISOString(); var data = 'Hello %%NAME%% it is now %%ISOTIME%%'; var vals = {'NAME': 'Dave', 'isoTIME': ts}; var r6 = outils.varSub(data, vals); expect(r6).to.have.string(mystr); // verify results }); it('TEST 6: Validate varSub templating with alternate substr', function() { var mystr = 'Hello Dave it is now %%ISOTIME%%'; var ts = new Date().toISOString(); var data = 'Hello ##NAME## it is now %%ISOTIME%%'; var vals = {'name': 'Dave', 'isoTIME': ts}; var r7 = outils.varSub(data, vals, '##'); expect(r7).to.equal(mystr); // verify results }); it('TEST 7: Test ctype=text for file test/genSoapTest.data ', function() { var mysize = 1133; var opts = { "type": "SOAP", "ctype": "TEXT", "file": f4, "maxsize": 26214400, "templatedir": __dirname }; outils.genUploadRequest(opts, function(er, fsz, bdy) { if (er) { console.log('genUploadRequestTest SOAP: error ' +er); throw er; } //console.log('genSoapTest SOAP: body:' +bdy); var r8 = bdy.length; expect(r8).to.equal(mysize); // verify results }); }); it('TEST 8: Validate no templates with reqtemps=false using file test/genSoapTest.data ', function() { var mysize = 728; var opts = { "type": "SOAP", "file": f4, "reqtemps": false, "templatedir": "INVALID_DIRNAME" }; outils.genUploadRequest(opts, function(er, fsz, bdy) { if (er) { console.log('genSoapTest SOAP: error ' +er); throw er; } //console.log('genUploadRequestTest SOAP: body:' +bdy); var r9 = bdy.length; expect(r9).to.equal(mysize); // verify results }); }); it('TEST 9: Validate no payload returned with retbody=false using file test/binfile ', function() { var mysize = 759; var opts = { "type": "WSA", "file": f4, "retbody": false // true is default. False is for WSA where payload is separate from SOAP Payload. }; outils.genUploadRequest(opts, function(er, fsz, soapbody) { if (er) { console.log('genSoapTest WSA: error ' +er); throw er; } //console.log('genUploadRequestTest WSA: body:' +soapbody); var r10 = soapbody.length; expect(r10).to.equal(mysize); // verify results }); }); it('TEST 10: Template subvars validation using file test/template.data', function() { var mysize = 271; var opts = { "type": "SOAP", "ctype": "TEXT", "file": f11, "reqtemps": false, "templatedir": "NOTEMPLATES", "user": "SCOTTISH", "pass": "LIONS" }; outils.genUploadRequest(opts, function(er, fsz, rawbody) { if (er) { console.log('genUploadRequestTest Template Test: error ' +er); throw er; } //console.log('genUploadRequest Test Template: body:' +rawbody); var r11 = rawbody.length; expect(r11).to.equal(mysize); // verify results }); }); it('TEST 11: Support OOTB RunScript callout parameters: filename & dir', function() { var ar = []; ar[0] = 'filename=binfile dir=test/'; ar[1] = 'outfile=out.xml outdir=/tmp/mft'; var obj = outils.parseCalloutArgs(ar); if (!obj.file) { var er = 'obj.file not found'; console.log(er); throw er; }; var resmatch = 'test/binfile out.xml /tmp/mft'; var r12 = obj.file +' ' +obj.outfile + ' ' +obj.outdir; expect(r12).to.equal(resmatch); // verify results }); it('TEST 12: Validate template option and generated request body for template file test/SOAP-PAYLOAD', function() { var mysize = 1317; var opts = { "type": "SOAP", "file": f4, "maxsize": 26214400, "template": __dirname+'/SOAP-PAYLOAD-TEXT' }; outils.genUploadRequest(opts, function(er, fsz, bdy) { if (er) { console.log('genUploadRequestTest SOAP: error ' +er); throw er; } //console.log('genUploadRequestTest SOAP: body:' +bdy); //console.log('genUploadRequestTest template ' +opts.template); var rs = bdy.length; expect(rs).to.equal(mysize); // verify results }); }); it('TEST 13: "template" and "templatedir" cannot be used together', function() { var rs; var myrs = 'generateUploadRequest ERROR: template and templatedir cannot be used together:'; var opts = { "type": "SOAP", "file": f4, "templatedir": __dirname, "template": __dirname+'/SOAP-PAYLOAD-TEXT' }; outils.genUploadRequest(opts, function(er, fsz, bdy) { if (er) { //console.log('genUploadRequestTest error: ' +er); rs = er; } expect(rs).to.have.string(myrs); // verify results }); }); it('TEST 14: Validate template custom variables using template file test/templateCustom.data', function() { var myrs = 'omft-utils/test Application Cubist'; var opts = { "type": "SOAP", "ctype": "text", "file": __dirname+'/templateCustom.data', "maxsize": 26214400, "template": __dirname+'/templateCustom.data', "templatevars": { "Application": "Cubist"}, "retbody": false // true is default. False is for WSA where payload is separate from SOAP Payload. }; outils.genUploadRequest(opts, function(er, fsz, bdy) { if (er) { console.log('genUploadRequestTest SOAP: error ' +er); throw er; } //console.log(opts); var rs = bdy.length; var ba = bdy.split(' '); //console.log('TEST:' +ba); expect(bdy).to.have.string(myrs); // verify results }); }); it('TEST 15: Test maxsize error', function() { var myrs = 'generateUploadRequest ERROR: ./test/genRequestTest.data filesize 544 exceeds maximum supported size of 40'; var opts = { "type": "SOAP", "file": f4, "maxsize": 40 }; outils.genUploadRequest(opts, function(er, fsz, bdy) { //if (er) { //} //console.log(opts); expect(er).to.equal(myrs); // verify results }); }); it('TEST 16: Test custom "template" config option', function() { var mysize = 1133; var opts = { "type": "SOAP", "ctype": "TEXT", "file": f4, "maxsize": 26214400, "template": path.join(__dirname, 'MY-PAYLOAD') }; outils.genUploadRequest(opts, function(er, fsz, bdy) { if (er) { console.log('genUploadRequestTest SOAP: error ' +er); throw er; } //console.log('genSoapTest SOAP: body:' +bdy); var r8 = bdy.length; expect(r8).to.equal(mysize); // verify results }); }); });