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