mirror of https://github.com/ThmmyNoLife/mTHMMY
Ezerous
5 years ago
9 changed files with 428 additions and 42 deletions
@ -0,0 +1,261 @@ |
|||||
|
<html> |
||||
|
<head> |
||||
|
<style> |
||||
|
body { |
||||
|
font-family: sans-serif; |
||||
|
background-color: #333333; |
||||
|
} |
||||
|
|
||||
|
pre { |
||||
|
background-color: #3C3C3C; |
||||
|
color: #757575; |
||||
|
padding: 1em; |
||||
|
margin-left: 1em; |
||||
|
margin-right: 1em; |
||||
|
white-space: pre-wrap; |
||||
|
} |
||||
|
|
||||
|
h4, |
||||
|
h5 { |
||||
|
display: inline; |
||||
|
padding: 1em; |
||||
|
} |
||||
|
|
||||
|
a, |
||||
|
h4, |
||||
|
h5 { |
||||
|
color: #26A69A; |
||||
|
word-wrap: break-word; |
||||
|
} |
||||
|
|
||||
|
li { |
||||
|
color: #26A69A; |
||||
|
} |
||||
|
|
||||
|
</style> |
||||
|
</head> |
||||
|
|
||||
|
<body> |
||||
|
<ul> |
||||
|
<li> |
||||
|
<h5><a href="https://github.com/junit-team/junit4">JUnit</a> v4.12 (Copyright © 2002-2019, JUnit)</h5> |
||||
|
</li> |
||||
|
</ul> |
||||
|
|
||||
|
|
||||
|
<br/> |
||||
|
<h4>Eclipse Public License v1.0</h4> |
||||
|
<pre> |
||||
|
THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS ECLIPSE PUBLIC |
||||
|
LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF THE PROGRAM |
||||
|
CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. |
||||
|
|
||||
|
1. DEFINITIONS |
||||
|
|
||||
|
"Contribution" means: |
||||
|
|
||||
|
a) in the case of the initial Contributor, the initial code and |
||||
|
documentation distributed under this Agreement, and |
||||
|
b) in the case of each subsequent Contributor: |
||||
|
|
||||
|
i) changes to the Program, and |
||||
|
|
||||
|
ii) additions to the Program; |
||||
|
|
||||
|
where such changes and/or additions to the Program originate from and are |
||||
|
distributed by that particular Contributor. A Contribution 'originates' from a |
||||
|
Contributor if it was added to the Program by such Contributor itself or anyone |
||||
|
acting on such Contributor's behalf. Contributions do not include additions to |
||||
|
the Program which: (i) are separate modules of software distributed in |
||||
|
conjunction with the Program under their own license agreement, and (ii) are |
||||
|
not derivative works of the Program. |
||||
|
|
||||
|
"Contributor" means any person or entity that distributes the Program. |
||||
|
|
||||
|
"Licensed Patents " mean patent claims licensable by a Contributor which are |
||||
|
necessarily infringed by the use or sale of its Contribution alone or when |
||||
|
combined with the Program. |
||||
|
|
||||
|
"Program" means the Contributions distributed in accordance with this Agreement. |
||||
|
|
||||
|
"Recipient" means anyone who receives the Program under this Agreement, |
||||
|
including all Contributors. |
||||
|
|
||||
|
2. GRANT OF RIGHTS |
||||
|
|
||||
|
a) Subject to the terms of this Agreement, each Contributor hereby grants |
||||
|
Recipient a non-exclusive, worldwide, royalty-free copyright license to |
||||
|
reproduce, prepare derivative works of, publicly display, publicly perform, |
||||
|
distribute and sublicense the Contribution of such Contributor, if any, and |
||||
|
such derivative works, in source code and object code form. |
||||
|
|
||||
|
b) Subject to the terms of this Agreement, each Contributor hereby grants |
||||
|
Recipient a non-exclusive, worldwide, royalty-free patent license under |
||||
|
Licensed Patents to make, use, sell, offer to sell, import and otherwise |
||||
|
transfer the Contribution of such Contributor, if any, in source code and |
||||
|
object code form. This patent license shall apply to the combination of the |
||||
|
Contribution and the Program if, at the time the Contribution is added by the |
||||
|
Contributor, such addition of the Contribution causes such combination to be |
||||
|
covered by the Licensed Patents. The patent license shall not apply to any |
||||
|
other combinations which include the Contribution. No hardware per se is |
||||
|
licensed hereunder. |
||||
|
|
||||
|
c) Recipient understands that although each Contributor grants the |
||||
|
licenses to its Contributions set forth herein, no assurances are provided by |
||||
|
any Contributor that the Program does not infringe the patent or other |
||||
|
intellectual property rights of any other entity. Each Contributor disclaims |
||||
|
any liability to Recipient for claims brought by any other entity based on |
||||
|
infringement of intellectual property rights or otherwise. As a condition to |
||||
|
exercising the rights and licenses granted hereunder, each Recipient hereby |
||||
|
assumes sole responsibility to secure any other intellectual property rights |
||||
|
needed, if any. For example, if a third party patent license is required to |
||||
|
allow Recipient to distribute the Program, it is Recipient's responsibility to |
||||
|
acquire that license before distributing the Program. |
||||
|
|
||||
|
d) Each Contributor represents that to its knowledge it has sufficient |
||||
|
copyright rights in its Contribution, if any, to grant the copyright license |
||||
|
set forth in this Agreement. |
||||
|
|
||||
|
3. REQUIREMENTS |
||||
|
|
||||
|
A Contributor may choose to distribute the Program in object code form under |
||||
|
its own license agreement, provided that: |
||||
|
|
||||
|
a) it complies with the terms and conditions of this Agreement; and |
||||
|
|
||||
|
b) its license agreement: |
||||
|
|
||||
|
i) effectively disclaims on behalf of all Contributors all warranties and |
||||
|
conditions, express and implied, including warranties or conditions of title |
||||
|
and non-infringement, and implied warranties or conditions of merchantability |
||||
|
and fitness for a particular purpose; |
||||
|
|
||||
|
ii) effectively excludes on behalf of all Contributors all liability for |
||||
|
damages, including direct, indirect, special, incidental and consequential |
||||
|
damages, such as lost profits; |
||||
|
|
||||
|
iii) states that any provisions which differ from this Agreement are |
||||
|
offered by that Contributor alone and not by any other party; and |
||||
|
|
||||
|
iv) states that source code for the Program is available from such |
||||
|
Contributor, and informs licensees how to obtain it in a reasonable manner on |
||||
|
or through a medium customarily used for software exchange. |
||||
|
|
||||
|
When the Program is made available in source code form: |
||||
|
|
||||
|
a) it must be made available under this Agreement; and |
||||
|
|
||||
|
b) a copy of this Agreement must be included with each copy of the |
||||
|
Program. |
||||
|
|
||||
|
Contributors may not remove or alter any copyright notices contained within the |
||||
|
Program. |
||||
|
|
||||
|
Each Contributor must identify itself as the originator of its Contribution, if |
||||
|
any, in a manner that reasonably allows subsequent Recipients to identify the |
||||
|
originator of the Contribution. |
||||
|
|
||||
|
4. COMMERCIAL DISTRIBUTION |
||||
|
|
||||
|
Commercial distributors of software may accept certain responsibilities with |
||||
|
respect to end users, business partners and the like. While this license is |
||||
|
intended to facilitate the commercial use of the Program, the Contributor who |
||||
|
includes the Program in a commercial product offering should do so in a manner |
||||
|
which does not create potential liability for other Contributors. Therefore, if |
||||
|
a Contributor includes the Program in a commercial product offering, such |
||||
|
Contributor ("Commercial Contributor") hereby agrees to defend and indemnify |
||||
|
every other Contributor ("Indemnified Contributor") against any losses, damages |
||||
|
and costs (collectively "Losses") arising from claims, lawsuits and other legal |
||||
|
actions brought by a third party against the Indemnified Contributor to the |
||||
|
extent caused by the acts or omissions of such Commercial Contributor in |
||||
|
connection with its distribution of the Program in a commercial product |
||||
|
offering. The obligations in this section do not apply to any claims or Losses |
||||
|
relating to any actual or alleged intellectual property infringement. In order |
||||
|
to qualify, an Indemnified Contributor must: a) promptly notify the Commercial |
||||
|
Contributor in writing of such claim, and b) allow the Commercial Contributor |
||||
|
to control, and cooperate with the Commercial Contributor in, the defense and |
||||
|
any related settlement negotiations. The Indemnified Contributor may |
||||
|
participate in any such claim at its own expense. |
||||
|
|
||||
|
For example, a Contributor might include the Program in a commercial product |
||||
|
offering, Product X. That Contributor is then a Commercial Contributor. If that |
||||
|
Commercial Contributor then makes performance claims, or offers warranties |
||||
|
related to Product X, those performance claims and warranties are such |
||||
|
Commercial Contributor's responsibility alone. Under this section, the |
||||
|
Commercial Contributor would have to defend claims against the other |
||||
|
Contributors related to those performance claims and warranties, and if a court |
||||
|
requires any other Contributor to pay any damages as a result, the Commercial |
||||
|
Contributor must pay those damages. |
||||
|
|
||||
|
5. NO WARRANTY |
||||
|
|
||||
|
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED ON AN |
||||
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR |
||||
|
IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, |
||||
|
NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each |
||||
|
Recipient is solely responsible for determining the appropriateness of using |
||||
|
and distributing the Program and assumes all risks associated with its exercise |
||||
|
of rights under this Agreement, including but not limited to the risks and |
||||
|
costs of program errors, compliance with applicable laws, damage to or loss of |
||||
|
data, programs or equipment, and unavailability or interruption of operations. |
||||
|
|
||||
|
6. DISCLAIMER OF LIABILITY |
||||
|
|
||||
|
EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR ANY |
||||
|
CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
||||
|
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION LOST |
||||
|
PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, |
||||
|
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY |
||||
|
WAY OUT OF THE USE OR DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS |
||||
|
GRANTED HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. |
||||
|
|
||||
|
7. GENERAL |
||||
|
|
||||
|
If any provision of this Agreement is invalid or unenforceable under applicable |
||||
|
law, it shall not affect the validity or enforceability of the remainder of the |
||||
|
terms of this Agreement, and without further action by the parties hereto, such |
||||
|
provision shall be reformed to the minimum extent necessary to make such |
||||
|
provision valid and enforceable. |
||||
|
|
||||
|
If Recipient institutes patent litigation against any |
||||
|
entity (including a cross-claim or counterclaim in a lawsuit) alleging that the |
||||
|
Program itself (excluding combinations of the Program with other software or |
||||
|
hardware) infringes such Recipient's patent(s), then such Recipient's rights |
||||
|
granted under Section 2(b) shall terminate as of the date such litigation is |
||||
|
filed. |
||||
|
|
||||
|
All Recipient's rights under this Agreement shall terminate if it fails to |
||||
|
comply with any of the material terms or conditions of this Agreement and does |
||||
|
not cure such failure in a reasonable period of time after becoming aware of |
||||
|
such noncompliance. If all Recipient's rights under this Agreement terminate, |
||||
|
Recipient agrees to cease use and distribution of the Program as soon as |
||||
|
reasonably practicable. However, Recipient's obligations under this Agreement |
||||
|
and any licenses granted by Recipient relating to the Program shall continue |
||||
|
and survive. |
||||
|
|
||||
|
Everyone is permitted to copy and distribute copies of this Agreement, but in |
||||
|
order to avoid inconsistency the Agreement is copyrighted and may only be |
||||
|
modified in the following manner. The Agreement Steward reserves the right to |
||||
|
publish new versions (including revisions) of this Agreement from time to time. |
||||
|
No one other than the Agreement Steward has the right to modify this Agreement. |
||||
|
The Eclipse Foundation is the initial Agreement Steward. The Eclipse Foundation may assign the responsibility to |
||||
|
serve as the Agreement Steward to a suitable separate entity. Each new version |
||||
|
of the Agreement will be given a distinguishing version number. The Program |
||||
|
(including Contributions) may always be distributed subject to the version of |
||||
|
the Agreement under which it was received. In addition, after a new version of |
||||
|
the Agreement is published, Contributor may elect to distribute the Program |
||||
|
(including its Contributions) under the new version. Except as expressly stated |
||||
|
in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to |
||||
|
the intellectual property of any Contributor under this Agreement, whether |
||||
|
expressly, by implication, estoppel or otherwise. All rights in the Program not |
||||
|
expressly granted under this Agreement are reserved. |
||||
|
|
||||
|
This Agreement is governed by the laws of the State of New York and the |
||||
|
intellectual property laws of the United States of America. No party to this |
||||
|
Agreement will bring a legal action under this Agreement more than one year |
||||
|
after the cause of action arose. Each party waives its rights to a jury trial |
||||
|
in any resulting litigation. |
||||
|
</pre> |
||||
|
</body> |
||||
|
|
||||
|
</html> |
@ -0,0 +1,84 @@ |
|||||
|
package gr.thmmy.mthmmy.utils.parsing; |
||||
|
|
||||
|
import net.lachlanmckee.timberjunit.TimberTestRule; |
||||
|
|
||||
|
import org.joda.time.DateTimeZone; |
||||
|
import org.junit.Rule; |
||||
|
import org.junit.Test; |
||||
|
import org.junit.runner.RunWith; |
||||
|
import org.powermock.core.classloader.annotations.PrepareForTest; |
||||
|
import org.powermock.modules.junit4.PowerMockRunner; |
||||
|
|
||||
|
import static gr.thmmy.mthmmy.utils.parsing.ThmmyDateTimeParser.convertToTimestamp; |
||||
|
import static org.junit.Assert.assertArrayEquals; |
||||
|
import static org.junit.Assert.assertNotNull; |
||||
|
import static org.powermock.api.support.membermodification.MemberMatcher.method; |
||||
|
import static org.powermock.api.support.membermodification.MemberModifier.stub; |
||||
|
|
||||
|
@RunWith(PowerMockRunner.class) |
||||
|
@PrepareForTest(ThmmyDateTimeParser.class) |
||||
|
public class ThmmyDateTimeParserTest { |
||||
|
@Rule |
||||
|
public TimberTestRule logAllAlwaysRule = TimberTestRule.logAllAlways(); |
||||
|
|
||||
|
private static final String TIME_ZONE ="Europe/Athens"; |
||||
|
private static final String GET_DTZ ="getDtz"; |
||||
|
|
||||
|
private final String [] expTimestamps={"1569245936000","1569191627000","1570050809000"}; |
||||
|
private final String [][] dateTimes = { |
||||
|
{ |
||||
|
"Σεπτεμβρίου 23, 2019, 16:38:56", |
||||
|
"Σεπτεμβρίου 23, 2019, 16:38:56 pm", |
||||
|
"Σεπτεμβρίου 23, 2019, 04:38:56 pm", |
||||
|
"23 Σεπτεμβρίου 2019, 16:38:56", |
||||
|
"2019-09-23, 16:38:56", |
||||
|
"23-09-2019, 16:38:56" |
||||
|
}, |
||||
|
{ |
||||
|
"Σεπτεμβρίου 23, 2019, 01:33:47", |
||||
|
"Σεπτεμβρίου 23, 2019, 01:33:47 am", |
||||
|
"23 Σεπτεμβρίου 2019, 01:33:47", |
||||
|
"23-09-2019, 01:33:47", |
||||
|
"2019-09-23, 01:33:47" |
||||
|
}, |
||||
|
{ |
||||
|
"Οκτωβρίου 03, 2019, 12:13:29 am", |
||||
|
"Οκτωβρίου 03, 2019, 00:13:29 am" |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
|
||||
|
@Test |
||||
|
public void dateTimesAreConvertedCorrectly() { |
||||
|
stub(method(ThmmyDateTimeParser.class, GET_DTZ)).toReturn(DateTimeZone.forID(TIME_ZONE)); |
||||
|
|
||||
|
String[][] expectedTimeStamps = new String[dateTimes.length][]; |
||||
|
String[][] timeStamps = new String[dateTimes.length][]; |
||||
|
|
||||
|
for(int i=0; i<dateTimes.length; i++){ |
||||
|
timeStamps[i] = new String[dateTimes[i].length]; |
||||
|
expectedTimeStamps[i] = new String[dateTimes[i].length]; |
||||
|
for(int j=0; j<dateTimes[i].length; j++){ |
||||
|
expectedTimeStamps[i][j]=expTimestamps[i]; |
||||
|
timeStamps[i][j]=convertToTimestamp(dateTimes[i][j]); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
assertArrayEquals(expectedTimeStamps,timeStamps); |
||||
|
} |
||||
|
|
||||
|
private final String [] todayDateTimes = { |
||||
|
"10:10:10", |
||||
|
"23:23:23", |
||||
|
"09:09:09 am", |
||||
|
"09:09:09 pm" |
||||
|
}; |
||||
|
|
||||
|
@Test |
||||
|
public void todayDateTimeDontConvertToNull() { |
||||
|
stub(method(ThmmyDateTimeParser.class, GET_DTZ)).toReturn(DateTimeZone.forID(TIME_ZONE)); |
||||
|
|
||||
|
for (String todayDateTime : todayDateTimes) |
||||
|
assertNotNull(convertToTimestamp(todayDateTime)); |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue