    @Test
    public void clientWeekNumberCalculation_lastWeekIf2014_weekNumber1() {

        TimeZone timezone = TimeZone.getTimeZone("Asia/Tehran");
        Locale locale = Locale.GERMANY;

        DateTime week1_2014 = new DateTime(2014, 1, 1, 0, 0, 0, 000,
                DateTimeZone.forTimeZone(timezone));

        DateTime week2_2014 = new DateTime(2014, 1, 6, 0, 0, 0, 000,
                DateTimeZone.forTimeZone(timezone));

        DateTime week52_2014 = new DateTime(2014, 12, 28, 0, 0, 0, 000,
                DateTimeZone.forTimeZone(timezone));

        DateTime lastDayOf2014 = new DateTime(2014, 12, 31, 0, 0, 0, 000,
                DateTimeZone.forTimeZone(timezone));

        DateTime week1_2015 = new DateTime(2015, 1, 4, 0, 0, 0, 000,
                DateTimeZone.forTimeZone(timezone));
        DateTime week2_2015 = new DateTime(2015, 1, 5, 0, 0, 0, 000,
                DateTimeZone.forTimeZone(timezone));

        Calendar cal = Calendar.getInstance(timezone, locale);

        long tzOfset = getTimezoneOffset(timezone, locale);

        int weekNumber = GanttUtil.getWeekNumber(new Date(week1_2014.toDate()
                .getTime() + tzOfset), getTimezoneOffset(timezone, locale),
                cal.getFirstDayOfWeek());
        Assert.assertEquals(1, weekNumber);

        weekNumber = GanttUtil.getWeekNumber(new Date(week2_2014.toDate()
                .getTime() + tzOfset), getTimezoneOffset(timezone, locale),
                cal.getFirstDayOfWeek());
        Assert.assertEquals(2, weekNumber);

        weekNumber = GanttUtil.getWeekNumber(lastDayOf2014.toDate(),
                getTimezoneOffset(timezone, locale), cal.getFirstDayOfWeek());
        Assert.assertEquals(1, weekNumber);

        weekNumber = GanttUtil.getWeekNumber(new Date(week52_2014.toDate()
                .getTime() + tzOfset), getTimezoneOffset(timezone, locale),
                cal.getFirstDayOfWeek());
        Assert.assertEquals(52, weekNumber);

        weekNumber = GanttUtil.getWeekNumber(new Date(week1_2015.toDate()
                .getTime() + tzOfset), getTimezoneOffset(timezone, locale),
                cal.getFirstDayOfWeek());
        Assert.assertEquals(1, weekNumber);

        weekNumber = GanttUtil.getWeekNumber(new Date(week2_2015.toDate()
                .getTime() + tzOfset), getTimezoneOffset(timezone, locale),
                cal.getFirstDayOfWeek());
        Assert.assertEquals(2, weekNumber);
    }