Commit 186b2c17 authored by Johannes Bill's avatar Johannes Bill

implemented test with database data

parent aeca4ffa
...@@ -3,9 +3,6 @@ var Holidays = require('./holidays'); ...@@ -3,9 +3,6 @@ var Holidays = require('./holidays');
var now = new Date(); var now = new Date();
var holidaysGetter = new Holidays(now.getFullYear()); var holidaysGetter = new Holidays(now.getFullYear());
var includeString = "810a6deb-46f2-4fa8-b779-bb5c2a6b5577";
var excludeString = "bb74c170-b06f-4d2b-ab88-2f6bf9ce8068";
var _epochStart = new Date(); var _epochStart = new Date();
_epochStart = new Date(_epochStart.getFullYear(), _epochStart.getMonth(), _epochStart.getDate()); _epochStart = new Date(_epochStart.getFullYear(), _epochStart.getMonth(), _epochStart.getDate());
//var _epochStart = new Date(2014, 0, 0); //var _epochStart = new Date(2014, 0, 0);
...@@ -20,12 +17,14 @@ function setEpocheSpan(startDate, endDate) { ...@@ -20,12 +17,14 @@ function setEpocheSpan(startDate, endDate) {
} }
function calculateOpeningHours(json) { function calculateOpeningHours(json) {
var includeString = "810a6deb-46f2-4fa8-b779-bb5c2a6b5577";
var excludeString = "bb74c170-b06f-4d2b-ab88-2f6bf9ce8068";
var jsonIncl = json[includeString]; var jsonIncl = json[includeString];
var jsonExcl = json[excludeString]; var jsonExcl = json[excludeString];
if (!jsonIncl) { if (!jsonIncl) {
throw 'no openinghours model found'; throw 'no openinghours model found';
return [];
} }
var resultIncl = []; var resultIncl = [];
...@@ -51,17 +50,17 @@ function calculateOpeningHours(json) { ...@@ -51,17 +50,17 @@ function calculateOpeningHours(json) {
option = getOption(data); option = getOption(data);
resultExcl.push(getOpeningHours(data, option)); resultExcl.push(getOpeningHours(data, option));
} }
resultExcl = tmUtils.orOperator(resultExcl); resultExcl = tmUtils.orOp(resultExcl);
} }
var allHolidays = getAllHolidays(); var allHolidays = getAllHolidays();
resultIncl = tmUtils.orOperator(resultIncl); resultIncl = tmUtils.orOp(resultIncl);
resultIncl = tmUtils.andNotOperator(resultIncl, allHolidays); resultIncl = tmUtils.andNotOp(resultIncl, allHolidays);
resultIncl = tmUtils.orOperator([resultIncl, holidayIncl]); resultIncl = tmUtils.orOp([resultIncl, holidayIncl]);
var result = resultIncl; var result = resultIncl;
if (jsonExcl) if (jsonExcl)
result = tmUtils.andNotOperator(resultIncl, resultExcl); result = tmUtils.andNotOp(resultIncl, resultExcl);
return result; return result;
} }
...@@ -79,8 +78,7 @@ function getDaySpan(data) { ...@@ -79,8 +78,7 @@ function getDaySpan(data) {
case 10: case 10:
return [1, 6]; return [1, 6];
default: default:
throw "Invalid day option: " + dayoption; throw ("Invalid day option: " + dayoption);
return [];
} }
} }
...@@ -108,7 +106,6 @@ function getHolidays(data) { ...@@ -108,7 +106,6 @@ function getHolidays(data) {
var option = data["option"]["0"]; var option = data["option"]["0"];
if (option != "holiday") { if (option != "holiday") {
throw 'not holiday: ' + option; throw 'not holiday: ' + option;
return null;
} }
var timeSpan = getTimeSpan(data); var timeSpan = getTimeSpan(data);
...@@ -206,10 +203,7 @@ function getOpeningHoursRepeatable(data) { ...@@ -206,10 +203,7 @@ function getOpeningHoursRepeatable(data) {
} }
} }
module.exports.getData = function (json) { module.exports.getData = calculateOpeningHours;
return calculateOpeningHours(json);
};
module.exports.setEpocheSpan = setEpocheSpan; module.exports.setEpocheSpan = setEpocheSpan;
...@@ -61,7 +61,7 @@ function standardFromTillDay(daySpan, timeSpan, dateSpan, epochSpan, daysDistanc ...@@ -61,7 +61,7 @@ function standardFromTillDay(daySpan, timeSpan, dateSpan, epochSpan, daysDistanc
} }
} }
result = sort(result); result = sort(result);
result = andOperator(result, [epochSpan]); result = andOp(result, [epochSpan]);
return result; return result;
} }
...@@ -135,7 +135,7 @@ function cyclicFromTillDay(daySpan, noInMonth, timeSpan, dateSpan, epochSpan) { ...@@ -135,7 +135,7 @@ function cyclicFromTillDay(daySpan, noInMonth, timeSpan, dateSpan, epochSpan) {
} }
} }
result = andOperator(result, [epochSpan]); result = andOp(result, [epochSpan]);
return result; return result;
} }
...@@ -218,7 +218,7 @@ function dateSpan(dateSpan) { ...@@ -218,7 +218,7 @@ function dateSpan(dateSpan) {
]; ];
} }
function orOperator(intervals) { function orOp(intervals) {
var result = []; var result = [];
for(var i = 0; i < intervals.length; i++) { for(var i = 0; i < intervals.length; i++) {
result = result.concat(intervals[i]); result = result.concat(intervals[i]);
...@@ -250,7 +250,7 @@ function mergeOverlaps(interval) { ...@@ -250,7 +250,7 @@ function mergeOverlaps(interval) {
return interval; return interval;
} }
function andOperator(interval1, interval2) { function andOp(interval1, interval2) {
var result = []; var result = [];
var i = 0; var i = 0;
...@@ -305,7 +305,7 @@ function invert(interval, epochStart, epochEnd) { ...@@ -305,7 +305,7 @@ function invert(interval, epochStart, epochEnd) {
* @param interval2 * @param interval2
* @returns {*} * @returns {*}
*/ */
function andNotOperator(interval1, interval2) { function andNotOp(interval1, interval2) {
if(!(interval1 && interval1[0] && interval1[0][0])) { if(!(interval1 && interval1[0] && interval1[0][0])) {
return []; return [];
} }
...@@ -317,7 +317,7 @@ function andNotOperator(interval1, interval2) { ...@@ -317,7 +317,7 @@ function andNotOperator(interval1, interval2) {
var epochEnd = new Date(Math.max(interval1[interval1.length - 1][1], interval2[interval2.length - 1][1])); var epochEnd = new Date(Math.max(interval1[interval1.length - 1][1], interval2[interval2.length - 1][1]));
interval2 = invert(interval2, epochStart, epochEnd); interval2 = invert(interval2, epochStart, epochEnd);
return andOperator(interval1, interval2); return andOp(interval1, interval2);
} }
function validate(interval) { function validate(interval) {
...@@ -334,9 +334,9 @@ function validate(interval) { ...@@ -334,9 +334,9 @@ function validate(interval) {
module.exports.standardFromTillDay = standardFromTillDay; module.exports.standardFromTillDay = standardFromTillDay;
module.exports.cyclicFromTillDay = cyclicFromTillDay; module.exports.cyclicFromTillDay = cyclicFromTillDay;
module.exports.singleDay = singleDay; module.exports.singleDay = singleDay;
module.exports.orOperator = orOperator; module.exports.orOp = orOp;
module.exports.andOperator = andOperator; module.exports.andOp = andOp;
module.exports.andNotOperator = andNotOperator; module.exports.andNotOp = andNotOp;
module.exports.mergeOverlaps = mergeOverlaps; module.exports.mergeOverlaps = mergeOverlaps;
module.exports.sort = sort; module.exports.sort = sort;
module.exports.dateSpan = dateSpan; module.exports.dateSpan = dateSpan;
......
var mysql = require('mysql'); var mysql = require('mysql');
var dateArray = require('../lib/dateArray'); var dateArray = require('../lib/dateArray');
var fs = require('fs'); var fs = require('fs');
var tmUtils = require('../lib/timeUtils');
var includeString = "810a6deb-46f2-4fa8-b779-bb5c2a6b5577"; var includeString = "810a6deb-46f2-4fa8-b779-bb5c2a6b5577";
var excludeString = "bb74c170-b06f-4d2b-ab88-2f6bf9ce8068"; var excludeString = "bb74c170-b06f-4d2b-ab88-2f6bf9ce8068";
...@@ -24,6 +25,7 @@ connection.query('SELECT name, elements FROM cms_zoo_item WHERE type = "company" ...@@ -24,6 +25,7 @@ connection.query('SELECT name, elements FROM cms_zoo_item WHERE type = "company"
var name = rows[i].name; var name = rows[i].name;
try{ try{
var result = dateArray.getData(obj); var result = dateArray.getData(obj);
tmUtils.validate(result);
} }
catch(err) catch(err)
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment