1
1
/*
2
- * Copyright 2002-2021 the original author or authors.
2
+ * Copyright 2002-2023 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
27
27
import static org .assertj .core .api .Assertions .assertThat ;
28
28
29
29
/**
30
- * Tests the evaluation of expressions using relational operators.
30
+ * Tests the evaluation of expressions using various operators.
31
31
*
32
32
* @author Andy Clement
33
33
* @author Juergen Hoeller
36
36
class OperatorTests extends AbstractExpressionTests {
37
37
38
38
@ Test
39
- void testEqual () {
39
+ void equal () {
40
40
evaluate ("3 == 5" , false , Boolean .class );
41
41
evaluate ("5 == 3" , false , Boolean .class );
42
42
evaluate ("6 == 6" , true , Boolean .class );
@@ -85,7 +85,7 @@ void testEqual() {
85
85
}
86
86
87
87
@ Test
88
- void testNotEqual () {
88
+ void notEqual () {
89
89
evaluate ("3 != 5" , true , Boolean .class );
90
90
evaluate ("5 != 3" , true , Boolean .class );
91
91
evaluate ("6 != 6" , false , Boolean .class );
@@ -134,7 +134,7 @@ void testNotEqual() {
134
134
}
135
135
136
136
@ Test
137
- void testLessThan () {
137
+ void lessThan () {
138
138
evaluate ("5 < 5" , false , Boolean .class );
139
139
evaluate ("3 < 5" , true , Boolean .class );
140
140
evaluate ("5 < 3" , false , Boolean .class );
@@ -176,7 +176,7 @@ void testLessThan() {
176
176
}
177
177
178
178
@ Test
179
- void testLessThanOrEqual () {
179
+ void lessThanOrEqual () {
180
180
evaluate ("3 <= 5" , true , Boolean .class );
181
181
evaluate ("5 <= 3" , false , Boolean .class );
182
182
evaluate ("6 <= 6" , true , Boolean .class );
@@ -225,7 +225,7 @@ void testLessThanOrEqual() {
225
225
}
226
226
227
227
@ Test
228
- void testGreaterThan () {
228
+ void greaterThan () {
229
229
evaluate ("3 > 5" , false , Boolean .class );
230
230
evaluate ("5 > 3" , true , Boolean .class );
231
231
evaluate ("3L > 5L" , false , Boolean .class );
@@ -266,7 +266,7 @@ void testGreaterThan() {
266
266
}
267
267
268
268
@ Test
269
- void testGreaterThanOrEqual () {
269
+ void greaterThanOrEqual () {
270
270
evaluate ("3 >= 5" , false , Boolean .class );
271
271
evaluate ("5 >= 3" , true , Boolean .class );
272
272
evaluate ("6 >= 6" , true , Boolean .class );
@@ -315,27 +315,27 @@ void testGreaterThanOrEqual() {
315
315
}
316
316
317
317
@ Test
318
- void testIntegerLiteral () {
318
+ void integerLiteral () {
319
319
evaluate ("3" , 3 , Integer .class );
320
320
}
321
321
322
322
@ Test
323
- void testRealLiteral () {
323
+ void realLiteral () {
324
324
evaluate ("3.5" , 3.5d , Double .class );
325
325
}
326
326
327
327
@ Test
328
- void testMultiplyStringInt () {
328
+ void multiplyStringInt () {
329
329
evaluate ("'a' * 5" , "aaaaa" , String .class );
330
330
}
331
331
332
332
@ Test
333
- void testMultiplyDoubleDoubleGivesDouble () {
333
+ void multiplyDoubleDoubleGivesDouble () {
334
334
evaluate ("3.0d * 5.0d" , 15.0d , Double .class );
335
335
}
336
336
337
337
@ Test
338
- void testMixedOperandsBigDecimal () {
338
+ void mixedOperandsBigDecimal () {
339
339
evaluate ("3 * new java.math.BigDecimal('5')" , new BigDecimal ("15" ), BigDecimal .class );
340
340
evaluate ("3L * new java.math.BigDecimal('5')" , new BigDecimal ("15" ), BigDecimal .class );
341
341
evaluate ("3.0d * new java.math.BigDecimal('5')" , new BigDecimal ("15.0" ), BigDecimal .class );
@@ -361,19 +361,19 @@ void testMixedOperandsBigDecimal() {
361
361
}
362
362
363
363
@ Test
364
- void testMathOperatorAdd02 () {
364
+ void mathOperatorAdd02 () {
365
365
evaluate ("'hello' + ' ' + 'world'" , "hello world" , String .class );
366
366
}
367
367
368
368
@ Test
369
- void testMathOperatorsInChains () {
369
+ void mathOperatorsInChains () {
370
370
evaluate ("1+2+3" ,6 ,Integer .class );
371
371
evaluate ("2*3*4" ,24 ,Integer .class );
372
372
evaluate ("12-1-2" ,9 ,Integer .class );
373
373
}
374
374
375
375
@ Test
376
- void testIntegerArithmetic () {
376
+ void integerArithmetic () {
377
377
evaluate ("2 + 4" , "6" , Integer .class );
378
378
evaluate ("5 - 4" , "1" , Integer .class );
379
379
evaluate ("3 * 5" , 15 , Integer .class );
@@ -388,7 +388,7 @@ void testIntegerArithmetic() {
388
388
}
389
389
390
390
@ Test
391
- void testPlus () {
391
+ void plus () {
392
392
evaluate ("7 + 2" , "9" , Integer .class );
393
393
evaluate ("3.0f + 5.0f" , 8.0f , Float .class );
394
394
evaluate ("3.0d + 5.0d" , 8.0d , Double .class );
@@ -400,44 +400,44 @@ void testPlus() {
400
400
evaluate ("null + 'ab'" , "nullab" , String .class );
401
401
402
402
// AST:
403
- SpelExpression expr = (SpelExpression )parser .parseExpression ("+3" );
403
+ SpelExpression expr = (SpelExpression ) parser .parseExpression ("+3" );
404
404
assertThat (expr .toStringAST ()).isEqualTo ("+3" );
405
- expr = (SpelExpression )parser .parseExpression ("2+3" );
405
+ expr = (SpelExpression ) parser .parseExpression ("2+3" );
406
406
assertThat (expr .toStringAST ()).isEqualTo ("(2 + 3)" );
407
407
408
408
// use as a unary operator
409
- evaluate ("+5d" ,5d ,Double .class );
410
- evaluate ("+5L" ,5L ,Long .class );
411
- evaluate ("+5" ,5 , Integer .class );
412
- evaluate ("+new java.math.BigDecimal('5')" , new BigDecimal ("5" ),BigDecimal .class );
413
- evaluateAndCheckError ("+'abc'" ,SpelMessage .OPERATOR_NOT_SUPPORTED_BETWEEN_TYPES );
409
+ evaluate ("+5d" , 5d , Double .class );
410
+ evaluate ("+5L" , 5L , Long .class );
411
+ evaluate ("+5" , 5 , Integer .class );
412
+ evaluate ("+new java.math.BigDecimal('5')" , new BigDecimal ("5" ), BigDecimal .class );
413
+ evaluateAndCheckError ("+'abc'" , SpelMessage .OPERATOR_NOT_SUPPORTED_BETWEEN_TYPES );
414
414
415
415
// string concatenation
416
- evaluate ("'abc'+'def'" ,"abcdef" ,String .class );
416
+ evaluate ("'abc'+'def'" , "abcdef" , String .class );
417
417
418
- evaluate ("5 + new Integer('37')" ,42 ,Integer .class );
418
+ evaluate ("5 + new Integer('37')" , 42 , Integer .class );
419
419
}
420
420
421
421
@ Test
422
- void testMinus () {
422
+ void minus () {
423
423
evaluate ("'c' - 2" , "a" , String .class );
424
424
evaluate ("3.0f - 5.0f" , -2.0f , Float .class );
425
425
evaluateAndCheckError ("'ab' - 2" , SpelMessage .OPERATOR_NOT_SUPPORTED_BETWEEN_TYPES );
426
426
evaluateAndCheckError ("2-'ab'" , SpelMessage .OPERATOR_NOT_SUPPORTED_BETWEEN_TYPES );
427
- SpelExpression expr = (SpelExpression )parser .parseExpression ("-3" );
427
+ SpelExpression expr = (SpelExpression ) parser .parseExpression ("-3" );
428
428
assertThat (expr .toStringAST ()).isEqualTo ("-3" );
429
- expr = (SpelExpression )parser .parseExpression ("2-3" );
429
+ expr = (SpelExpression ) parser .parseExpression ("2-3" );
430
430
assertThat (expr .toStringAST ()).isEqualTo ("(2 - 3)" );
431
431
432
- evaluate ("-5d" ,-5d ,Double .class );
433
- evaluate ("-5L" ,-5L ,Long .class );
432
+ evaluate ("-5d" , -5d , Double .class );
433
+ evaluate ("-5L" , -5L , Long .class );
434
434
evaluate ("-5" , -5 , Integer .class );
435
- evaluate ("-new java.math.BigDecimal('5')" , new BigDecimal ("-5" ),BigDecimal .class );
435
+ evaluate ("-new java.math.BigDecimal('5')" , new BigDecimal ("-5" ), BigDecimal .class );
436
436
evaluateAndCheckError ("-'abc'" , SpelMessage .OPERATOR_NOT_SUPPORTED_BETWEEN_TYPES );
437
437
}
438
438
439
439
@ Test
440
- void testModulus () {
440
+ void modulus () {
441
441
evaluate ("3%2" ,1 ,Integer .class );
442
442
evaluate ("3L%2L" ,1L ,Long .class );
443
443
evaluate ("3.0f%2.0f" ,1f ,Float .class );
@@ -448,7 +448,7 @@ void testModulus() {
448
448
}
449
449
450
450
@ Test
451
- void testDivide () {
451
+ void divide () {
452
452
evaluate ("3.0f / 5.0f" , 0.6f , Float .class );
453
453
evaluate ("4L/2L" ,2L ,Long .class );
454
454
evaluate ("3.0f div 5.0f" , 0.6f , Float .class );
@@ -461,17 +461,17 @@ void testDivide() {
461
461
}
462
462
463
463
@ Test
464
- void testMathOperatorDivide_ConvertToDouble () {
464
+ void mathOperatorDivide_ConvertToDouble () {
465
465
evaluateAndAskForReturnType ("8/4" , 2.0 , Double .class );
466
466
}
467
467
468
468
@ Test
469
- void testMathOperatorDivide04_ConvertToFloat () {
469
+ void mathOperatorDivide04_ConvertToFloat () {
470
470
evaluateAndAskForReturnType ("8/4" , 2.0F , Float .class );
471
471
}
472
472
473
473
@ Test
474
- void testDoubles () {
474
+ void doubles () {
475
475
evaluate ("3.0d == 5.0d" , false , Boolean .class );
476
476
evaluate ("3.0d == 3.0d" , true , Boolean .class );
477
477
evaluate ("3.0d != 5.0d" , true , Boolean .class );
@@ -484,7 +484,7 @@ void testDoubles() {
484
484
}
485
485
486
486
@ Test
487
- void testBigDecimals () {
487
+ void bigDecimals () {
488
488
evaluate ("3 + new java.math.BigDecimal('5')" , new BigDecimal ("8" ), BigDecimal .class );
489
489
evaluate ("3 - new java.math.BigDecimal('5')" , new BigDecimal ("-2" ), BigDecimal .class );
490
490
evaluate ("3 * new java.math.BigDecimal('5')" , new BigDecimal ("15" ), BigDecimal .class );
@@ -495,7 +495,7 @@ void testBigDecimals() {
495
495
}
496
496
497
497
@ Test
498
- void testOperatorNames () {
498
+ void operatorNames () {
499
499
Operator node = getOperatorNode ((SpelExpression )parser .parseExpression ("1==3" ));
500
500
assertThat (node .getOperatorName ()).isEqualTo ("==" );
501
501
@@ -534,22 +534,22 @@ void testOperatorNames() {
534
534
}
535
535
536
536
@ Test
537
- void testOperatorOverloading () {
537
+ void operatorOverloading () {
538
538
evaluateAndCheckError ("'a' * '2'" , SpelMessage .OPERATOR_NOT_SUPPORTED_BETWEEN_TYPES );
539
539
evaluateAndCheckError ("'a' ^ '2'" , SpelMessage .OPERATOR_NOT_SUPPORTED_BETWEEN_TYPES );
540
540
}
541
541
542
542
@ Test
543
- void testPower () {
544
- evaluate ("3^2" ,9 , Integer .class );
545
- evaluate ("3.0d^2.0d" ,9.0d ,Double .class );
546
- evaluate ("3L^2L" ,9L ,Long .class );
543
+ void power () {
544
+ evaluate ("3^2" , 9 , Integer .class );
545
+ evaluate ("3.0d^2.0d" , 9.0d , Double .class );
546
+ evaluate ("3L^2L" , 9L , Long .class );
547
547
evaluate ("(2^32)^2" , 9223372036854775807L , Long .class );
548
548
evaluate ("new java.math.BigDecimal('5') ^ 3" , new BigDecimal ("125" ), BigDecimal .class );
549
549
}
550
550
551
551
@ Test
552
- void testMixedOperands_FloatsAndDoubles () {
552
+ void mixedOperands_FloatsAndDoubles () {
553
553
evaluate ("3.0d + 5.0f" , 8.0d , Double .class );
554
554
evaluate ("3.0D - 5.0f" , -2.0d , Double .class );
555
555
evaluate ("3.0f * 5.0d" , 15.0d , Double .class );
@@ -558,7 +558,7 @@ void testMixedOperands_FloatsAndDoubles() {
558
558
}
559
559
560
560
@ Test
561
- void testMixedOperands_DoublesAndInts () {
561
+ void mixedOperands_DoublesAndInts () {
562
562
evaluate ("3.0d + 5" , 8.0d , Double .class );
563
563
evaluate ("3.0D - 5" , -2.0d , Double .class );
564
564
evaluate ("3.0f * 5" , 15.0f , Float .class );
@@ -569,15 +569,15 @@ void testMixedOperands_DoublesAndInts() {
569
569
}
570
570
571
571
@ Test
572
- void testStrings () {
572
+ void strings () {
573
573
evaluate ("'abc' == 'abc'" , true , Boolean .class );
574
574
evaluate ("'abc' == 'def'" , false , Boolean .class );
575
575
evaluate ("'abc' != 'abc'" , false , Boolean .class );
576
576
evaluate ("'abc' != 'def'" , true , Boolean .class );
577
577
}
578
578
579
579
@ Test
580
- void testLongs () {
580
+ void longs () {
581
581
evaluate ("3L == 4L" , false , Boolean .class );
582
582
evaluate ("3L == 3L" , true , Boolean .class );
583
583
evaluate ("3L != 4L" , true , Boolean .class );
@@ -588,7 +588,7 @@ void testLongs() {
588
588
}
589
589
590
590
@ Test
591
- void testBigIntegers () {
591
+ void bigIntegers () {
592
592
evaluate ("3 + new java.math.BigInteger('5')" , new BigInteger ("8" ), BigInteger .class );
593
593
evaluate ("3 - new java.math.BigInteger('5')" , new BigInteger ("-2" ), BigInteger .class );
594
594
evaluate ("3 * new java.math.BigInteger('5')" , new BigInteger ("15" ), BigInteger .class );
@@ -619,7 +619,7 @@ private Operator findOperator(SpelNode node) {
619
619
}
620
620
621
621
622
- public static class BaseComparable implements Comparable <BaseComparable > {
622
+ static class BaseComparable implements Comparable <BaseComparable > {
623
623
624
624
@ Override
625
625
public int compareTo (BaseComparable other ) {
0 commit comments