Fails on master with an old driver, fixed in the PR by adding a getter for
the expected.

Op za 25 apr. 2020 10:31 schreef Andrea Aime <andrea.a...@geo-solutions.it>:

> But first the question: was it failing before?
> Tests are often added to the base JDBC*Test classes, and tested on a bunch
> of them only... like,
> NOT Oracle :-D
>
> Cheers
> Andrea
>
> On Sat, Apr 25, 2020 at 3:10 AM Jody Garnett <jody.garn...@gmail.com>
> wrote:
>
>> My first thought is the previous driver also had to wrestle with Oracle's
>> representation of Numbers and was able to sort things out.
>>
>> * Can we find any logic that handled this previously?
>>
>> * Can we step through the old code with a debugger and see how it made
>> the decision to convert from BigDecimal to Integer? (There is obviously
>> some logic as it managed the conversion from BigDecimal to Double)
>> --
>> Jody Garnett
>>
>>
>> On Thu, 23 Apr 2020 at 02:28, Mark Prins <mc.pr...@gmail.com> wrote:
>>
>>>
>>>
>>> Op di 21 apr. 2020 om 17:51 schreef Mark Prins <mc.pr...@gmail.com>:
>>>
>>>> While working on this PR https://github.com/geotools/geotools/pull/2890
>>>> to have Online testing of the Oracle JDBC module I'm running into some
>>>> failing tests.
>>>>
>>>
>>>> OracleFeatureSourceOnlineTest>OnlineTestCase.run:112->JDBCFeatureSourceOnlineTest.testMixedEncodeIn:680
>>>>
>>>> expected:<[zero, two, 1, 2, 0.0]> but was:<[zero, two, 1, 2, 0.0]>
>>>>
>>>>
>>> debugging shows that this test[1] is failing because:
>>>
>>> literals = {ArrayList@4436}  size = 5
>>>  0 = "zero"
>>>  1 = "two"
>>>  2 = {BigDecimal@4442} "1"
>>>  3 = {BigDecimal@4443} "2"
>>>  4 = {Double@4444} 0.0
>>>
>>> expected = {Arrays$ArrayList@4451}  size = 5
>>>  0 = "zero"
>>>  1 = "two"
>>>  2 = {Integer@4456} 1
>>>  3 = {Integer@4457} 2
>>>  4 = {Double@4458} 0.0
>>>
>>> [1]
>>> https://github.com/geotools/geotools/blob/master/modules/library/jdbc/src/test/java/org/geotools/jdbc/JDBCFeatureSourceOnlineTest.java#L677
>>>
>>> This is because Oracle uses BigDecimal for any Number...
>>>
>>> My initial thought was to copy and overide the test into the Oracle
>>> subclass, but that is basically made impossible becasue the test uses the
>>> package private method "splitFilter" (
>>> https://github.com/geotools/geotools/blob/7925c3f05470aceeab2c2188ea90959466ce0bd2/modules/library/jdbc/src/main/java/org/geotools/jdbc/JDBCFeatureSource.java#L363
>>> )
>>>  so that won't fly..
>>>
>>> My second best option is to extract getting the expected values into a
>>> protected method so dialects can override that, so adding
>>> to JDBCFeatureSourceOnlineTest the following method:
>>>
>>> /**
>>> * @return expected list for {@link #testMixedEncodeIn()}
>>> */
>>>     protected List<Object> getTestMixedEncodeInExpected (){
>>>         return Arrays.asList("zero", "two", 1, 2, 0d);
>>>     }
>>>
>>> and adding to OracleFeatureSourceOnlineTest
>>>
>>> /**
>>>  * Because Oracle uses "Bigdecimal" for any number we need to change the 
>>> type of the objects that are in the list of expected objects.
>>>  *
>>>  * @return expected list for {@link #testMixedEncodeIn()}
>>>  */
>>> @Override
>>> protected List<Object> getTestMixedEncodeInExpected() {
>>>     return Arrays.asList("zero", "two", BigDecimal.valueOf(1), 
>>> BigDecimal.valueOf(2), 0d);
>>> }
>>>
>>>
>>> Any other thoughts / ideas? I don't think it would be too useful to
>>> reduce the test to compare two List<String> instead?
>>>
>>> Mark
>>>
>>> --
>>> Disclaimer;
>>> This message is just a reflection of what I thought at the time of
>>> sending. The message may contain information that is not intended for you
>>> or that you don't understand.
>>> _______________________________________________
>>> GeoTools-Devel mailing list
>>> GeoTools-Devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>>>
>> _______________________________________________
>> GeoTools-Devel mailing list
>> GeoTools-Devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/geotools-devel
>>
>
>
> --
>
> Regards, Andrea Aime
>
> == GeoServer Professional Services from the experts! Visit
> http://goo.gl/it488V for more information. == Ing. Andrea Aime @geowolf
> Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054 Massarosa
> (LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549
> http://www.geo-solutions.it http://twitter.com/geosolutions_it
> ------------------------------------------------------- *Con riferimento
> alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 -
> Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni
> circostanza inerente alla presente email (il suo contenuto, gli eventuali
> allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i
> destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per
> errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le
> sarei comunque grato se potesse darmene notizia. This email is intended
> only for the person or entity to which it is addressed and may contain
> information that is privileged, confidential or otherwise protected from
> disclosure. We remind that - as provided by European Regulation 2016/679
> “GDPR” - copying, dissemination or use of this e-mail or the information
> herein by anyone other than the intended recipient is prohibited. If you
> have received this email by mistake, please notify us immediately by
> telephone or e-mail.*
>
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to