Merge branch 'master' into master
This commit is contained in:
commit
26e6d89a48
@ -0,0 +1,19 @@
|
|||||||
|
package com.baeldung.random;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
|
public class LegacyRandomDateTimes {
|
||||||
|
|
||||||
|
public static Date between(Date startInclusive, Date endExclusive) {
|
||||||
|
long startMillis = startInclusive.getTime();
|
||||||
|
long endMillis = endExclusive.getTime();
|
||||||
|
long randomMillisSinceEpoch = ThreadLocalRandom.current().nextLong(startMillis, endMillis);
|
||||||
|
|
||||||
|
return new Date(randomMillisSinceEpoch);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Date timestamp() {
|
||||||
|
return new Date(ThreadLocalRandom.current().nextInt() * 1000L);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.baeldung.random;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
|
public class RandomDateTimes {
|
||||||
|
|
||||||
|
public static Instant timestamp() {
|
||||||
|
return Instant.ofEpochSecond(ThreadLocalRandom.current().nextInt());
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Instant between(Instant startInclusive, Instant endExclusive) {
|
||||||
|
long startSeconds = startInclusive.getEpochSecond();
|
||||||
|
long endSeconds = endExclusive.getEpochSecond();
|
||||||
|
long random = ThreadLocalRandom.current().nextLong(startSeconds, endSeconds);
|
||||||
|
|
||||||
|
return Instant.ofEpochSecond(random);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Instant after(Instant startInclusive) {
|
||||||
|
return between(startInclusive, Instant.MAX);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Instant before(Instant upperExclusive) {
|
||||||
|
return between(Instant.MIN, upperExclusive);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
package com.baeldung.random;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
|
public class RandomDates {
|
||||||
|
|
||||||
|
public static LocalDate between(LocalDate startInclusive, LocalDate endExclusive) {
|
||||||
|
long startEpochDay = startInclusive.toEpochDay();
|
||||||
|
long endEpochDay = endExclusive.toEpochDay();
|
||||||
|
long randomDay = ThreadLocalRandom.current().nextLong(startEpochDay, endEpochDay);
|
||||||
|
|
||||||
|
return LocalDate.ofEpochDay(randomDay);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LocalDate date() {
|
||||||
|
int hundredYears = 100 * 365;
|
||||||
|
return LocalDate.ofEpochDay(ThreadLocalRandom.current().nextInt(-hundredYears, hundredYears));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.baeldung.random;
|
||||||
|
|
||||||
|
import java.time.LocalTime;
|
||||||
|
import java.util.concurrent.ThreadLocalRandom;
|
||||||
|
|
||||||
|
public class RandomTimes {
|
||||||
|
|
||||||
|
public static LocalTime between(LocalTime startTime, LocalTime endTime) {
|
||||||
|
int startSeconds = startTime.toSecondOfDay();
|
||||||
|
int endSeconds = endTime.toSecondOfDay();
|
||||||
|
int randomTime = ThreadLocalRandom.current().nextInt(startSeconds, endSeconds);
|
||||||
|
|
||||||
|
return LocalTime.ofSecondOfDay(randomTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static LocalTime time() {
|
||||||
|
return between(LocalTime.MIN, LocalTime.MAX);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
package com.baeldung.random;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.RepeatedTest;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
class LegacyRandomDateTimesUnitTest {
|
||||||
|
|
||||||
|
private static final Date MIN_DATE = new Date(Long.MIN_VALUE);
|
||||||
|
private static final Date MAX_DATE = new Date(Long.MAX_VALUE);
|
||||||
|
|
||||||
|
@RepeatedTest(100)
|
||||||
|
void givenARange_WhenGenTimestamp_ShouldBeInRange() {
|
||||||
|
long aDay = TimeUnit.DAYS.toMillis(1);
|
||||||
|
long now = new Date().getTime();
|
||||||
|
|
||||||
|
Date hundredYearsAgo = new Date(now - aDay * 365 * 100);
|
||||||
|
Date tenDaysAgo = new Date(now - aDay * 10);
|
||||||
|
|
||||||
|
Date random = LegacyRandomDateTimes.between(hundredYearsAgo, tenDaysAgo);
|
||||||
|
assertThat(random).isBetween(hundredYearsAgo, tenDaysAgo);
|
||||||
|
}
|
||||||
|
|
||||||
|
@RepeatedTest(100)
|
||||||
|
void givenNoRange_WhenGenTimestamp_ShouldGenerateRandomTimestamps() {
|
||||||
|
Date random = LegacyRandomDateTimes.timestamp();
|
||||||
|
|
||||||
|
assertThat(random)
|
||||||
|
.isNotNull()
|
||||||
|
.isBetween(MIN_DATE, MAX_DATE);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.baeldung.random;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.RepeatedTest;
|
||||||
|
|
||||||
|
import java.time.Duration;
|
||||||
|
import java.time.Instant;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
class RandomDateTimesUnitTest {
|
||||||
|
|
||||||
|
@RepeatedTest(100)
|
||||||
|
void givenNoRange_WhenGenTimestamp_ShouldGenerateRandomTimestamps() {
|
||||||
|
Instant random = RandomDateTimes.timestamp();
|
||||||
|
|
||||||
|
assertThat(random).isBetween(Instant.MIN, Instant.MAX);
|
||||||
|
}
|
||||||
|
|
||||||
|
@RepeatedTest(100)
|
||||||
|
void givenARange_WhenGenTimestamp_ShouldBeInRange() {
|
||||||
|
Instant hundredYearsAgo = Instant.now().minus(Duration.ofDays(100 * 365));
|
||||||
|
Instant tenDaysAgo = Instant.now().minus(Duration.ofDays(10));
|
||||||
|
|
||||||
|
Instant random = RandomDateTimes.between(hundredYearsAgo, tenDaysAgo);
|
||||||
|
assertThat(random).isBetween(hundredYearsAgo, tenDaysAgo);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.baeldung.random;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.RepeatedTest;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.Month;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
class RandomDatesUnitTest {
|
||||||
|
|
||||||
|
@RepeatedTest(100)
|
||||||
|
void givenNoRange_WhenGenDate_ShouldGenerateRandomDates() {
|
||||||
|
LocalDate randomDay = RandomDates.date();
|
||||||
|
|
||||||
|
assertThat(randomDay).isAfter(LocalDate.MIN).isBefore(LocalDate.MAX);
|
||||||
|
}
|
||||||
|
|
||||||
|
@RepeatedTest(100)
|
||||||
|
void givenARange_WhenGenDate_ShouldBeInRange() {
|
||||||
|
LocalDate start = LocalDate.of(1989, Month.OCTOBER, 14);
|
||||||
|
LocalDate end = LocalDate.now();
|
||||||
|
|
||||||
|
LocalDate random = RandomDates.between(start, end);
|
||||||
|
assertThat(random).isAfter(start).isBefore(end);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,20 @@
|
|||||||
|
package com.baeldung.random;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.RepeatedTest;
|
||||||
|
|
||||||
|
import java.time.LocalTime;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
||||||
|
class RandomTimesUnitTest {
|
||||||
|
|
||||||
|
@RepeatedTest(100)
|
||||||
|
void givenARange_WhenGenTime_ShouldBeInRange() {
|
||||||
|
LocalTime morning = LocalTime.of(8, 30);
|
||||||
|
LocalTime randomTime = RandomTimes.between(LocalTime.MIDNIGHT, morning);
|
||||||
|
|
||||||
|
assertThat(randomTime)
|
||||||
|
.isAfter(LocalTime.MIDNIGHT).isBefore(morning)
|
||||||
|
.isAfter(LocalTime.MIN).isBefore(LocalTime.MAX);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package com.baeldung.trywithresource;
|
||||||
|
|
||||||
|
public class AutoCloseableMain {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws Exception {
|
||||||
|
orderOfClosingResources();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void orderOfClosingResources() throws Exception {
|
||||||
|
try (AutoCloseableResourcesFirst af = new AutoCloseableResourcesFirst();
|
||||||
|
AutoCloseableResourcesSecond as = new AutoCloseableResourcesSecond()) {
|
||||||
|
af.doSomething();
|
||||||
|
as.doSomething();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package com.baeldung.trywithresource;
|
||||||
|
|
||||||
|
public class AutoCloseableResourcesFirst implements AutoCloseable {
|
||||||
|
|
||||||
|
public AutoCloseableResourcesFirst() {
|
||||||
|
System.out.println("Constructor -> AutoCloseableResources_First");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void doSomething() {
|
||||||
|
System.out.println("Something -> AutoCloseableResources_First");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void close() throws Exception {
|
||||||
|
System.out.println("Closed AutoCloseableResources_First");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package com.baeldung.trywithresource;
|
||||||
|
|
||||||
|
public class AutoCloseableResourcesSecond implements AutoCloseable {
|
||||||
|
|
||||||
|
public AutoCloseableResourcesSecond() {
|
||||||
|
System.out.println("Constructor -> AutoCloseableResources_Second");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void doSomething() {
|
||||||
|
System.out.println("Something -> AutoCloseableResources_Second");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void close() throws Exception {
|
||||||
|
System.out.println("Closed AutoCloseableResources_Second");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package com.baeldung.trywithresource;
|
||||||
|
|
||||||
|
public class MyResource implements AutoCloseable {
|
||||||
|
@Override
|
||||||
|
public void close() throws Exception {
|
||||||
|
System.out.println("Closed MyResource");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
package com.baeldung.scanner;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
|
import java.util.NoSuchElementException;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class JavaScannerUnitTest {
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenReadingLines_thenCorrect() {
|
||||||
|
String input = "Scanner\nTest\n";
|
||||||
|
try (Scanner scanner = new Scanner(input)) {
|
||||||
|
assertEquals("Scanner", scanner.nextLine());
|
||||||
|
assertEquals("Test", scanner.nextLine());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void whenReadingPartialLines_thenCorrect() {
|
||||||
|
String input = "Scanner\n";
|
||||||
|
try (Scanner scanner = new Scanner(input)) {
|
||||||
|
scanner.useDelimiter("");
|
||||||
|
scanner.next();
|
||||||
|
assertEquals("canner", scanner.nextLine());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = NoSuchElementException.class)
|
||||||
|
public void givenNoNewLine_whenReadingNextLine_thenThrowNoSuchElementException() {
|
||||||
|
try (Scanner scanner = new Scanner("")) {
|
||||||
|
String result = scanner.nextLine();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test(expected = IllegalStateException.class)
|
||||||
|
public void givenScannerIsClosed_whenReadingNextLine_thenThrowIllegalStateException() {
|
||||||
|
Scanner scanner = new Scanner("");
|
||||||
|
scanner.close();
|
||||||
|
String result = scanner.nextLine();
|
||||||
|
}
|
||||||
|
}
|
11
core-java-modules/core-java-string-operations-2/README.md
Normal file
11
core-java-modules/core-java-string-operations-2/README.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
## Java String Operations
|
||||||
|
|
||||||
|
This module contains articles about string operations.
|
||||||
|
|
||||||
|
### Relevant Articles:
|
||||||
|
- [Concatenating Strings In Java](https://www.baeldung.com/java-strings-concatenation)
|
||||||
|
- [Checking for Empty or Blank Strings in Java](https://www.baeldung.com/java-blank-empty-strings)
|
||||||
|
- [String Initialization in Java](https://www.baeldung.com/java-string-initialization)
|
||||||
|
- [String toLowerCase and toUpperCase Methods in Java](https://www.baeldung.com/java-string-convert-case)
|
||||||
|
- [Java String equalsIgnoreCase()](https://www.baeldung.com/java-string-equalsignorecase)
|
||||||
|
- More articles: [[<-- prev]](../core-java-string-operations)
|
81
core-java-modules/core-java-string-operations-2/pom.xml
Normal file
81
core-java-modules/core-java-string-operations-2/pom.xml
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>core-java-string-operations-2</artifactId>
|
||||||
|
<version>0.1.0-SNAPSHOT</version>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
<name>core-java-string-operations-2</name>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>com.baeldung</groupId>
|
||||||
|
<artifactId>parent-java</artifactId>
|
||||||
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
|
<relativePath>../../parent-java</relativePath>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.validation</groupId>
|
||||||
|
<artifactId>validation-api</artifactId>
|
||||||
|
<version>${validation-api.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.google.guava</groupId>
|
||||||
|
<artifactId>guava</artifactId>
|
||||||
|
<version>${guava.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.commons</groupId>
|
||||||
|
<artifactId>commons-lang3</artifactId>
|
||||||
|
<version>${commons-lang3.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.hibernate.validator</groupId>
|
||||||
|
<artifactId>hibernate-validator</artifactId>
|
||||||
|
<version>${hibernate-validator.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.el</groupId>
|
||||||
|
<artifactId>javax.el-api</artifactId>
|
||||||
|
<version>${javax.el-api.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.glassfish.web</groupId>
|
||||||
|
<artifactId>javax.el</artifactId>
|
||||||
|
<version>${javax.el.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.hamcrest</groupId>
|
||||||
|
<artifactId>hamcrest-library</artifactId>
|
||||||
|
<version>${org.hamcrest.version}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.assertj</groupId>
|
||||||
|
<artifactId>assertj-core</artifactId>
|
||||||
|
<version>${assertj.version}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<finalName>core-java-string-operations-2</finalName>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<assertj.version>3.6.1</assertj.version>
|
||||||
|
<validation-api.version>2.0.0.Final</validation-api.version>
|
||||||
|
<commons-lang3.version>3.8.1</commons-lang3.version>
|
||||||
|
<guava.version>27.0.1-jre</guava.version>
|
||||||
|
<hibernate-validator.version>6.0.2.Final</hibernate-validator.version>
|
||||||
|
<javax.el-api.version>3.0.0</javax.el-api.version>
|
||||||
|
<javax.el.version>2.2.6</javax.el.version>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
</project>
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.emptystrings;
|
package com.baeldung.emptystrings;
|
||||||
|
|
||||||
class EmptyStringCheck {
|
class EmptyStringCheck {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.emptystrings;
|
package com.baeldung.emptystrings;
|
||||||
|
|
||||||
class Java5EmptyStringCheck {
|
class Java5EmptyStringCheck {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.emptystrings;
|
package com.baeldung.emptystrings;
|
||||||
|
|
||||||
class PlainJavaBlankStringCheck {
|
class PlainJavaBlankStringCheck {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.emptystrings;
|
package com.baeldung.emptystrings;
|
||||||
|
|
||||||
import javax.validation.constraints.Pattern;
|
import javax.validation.constraints.Pattern;
|
||||||
|
|
@ -1,29 +1,29 @@
|
|||||||
package com.baeldung.string.changecase;
|
package com.baeldung.changecase;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.junit.Test;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
public class ToLowerCaseUnitTest {
|
public class ToLowerCaseUnitTest {
|
||||||
|
|
||||||
private static final Locale TURKISH = new Locale("tr");
|
private static final Locale TURKISH = new Locale("tr");
|
||||||
private String name = "John Doe";
|
private String name = "John Doe";
|
||||||
private String foreignUppercase = "\u0049";
|
private String foreignUppercase = "\u0049";
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenMixedCaseString_WhenToLowerCase_ThenResultIsLowerCase() {
|
public void givenMixedCaseString_WhenToLowerCase_ThenResultIsLowerCase() {
|
||||||
assertEquals("john doe", name.toLowerCase());
|
assertEquals("john doe", name.toLowerCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenForeignString_WhenToLowerCaseWithoutLocale_ThenResultIsLowerCase() {
|
public void givenForeignString_WhenToLowerCaseWithoutLocale_ThenResultIsLowerCase() {
|
||||||
assertEquals("\u0069", foreignUppercase.toLowerCase());
|
assertEquals("\u0069", foreignUppercase.toLowerCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenForeignString_WhenToLowerCaseWithLocale_ThenResultIsLowerCase() {
|
public void givenForeignString_WhenToLowerCaseWithLocale_ThenResultIsLowerCase() {
|
||||||
assertEquals("\u0131", foreignUppercase.toLowerCase(TURKISH));
|
assertEquals("\u0131", foreignUppercase.toLowerCase(TURKISH));
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,29 +1,29 @@
|
|||||||
package com.baeldung.string.changecase;
|
package com.baeldung.changecase;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import org.junit.Test;
|
||||||
|
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import org.junit.Test;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
|
||||||
public class ToUpperCaseUnitTest {
|
public class ToUpperCaseUnitTest {
|
||||||
|
|
||||||
private static final Locale TURKISH = new Locale("tr");
|
private static final Locale TURKISH = new Locale("tr");
|
||||||
private String name = "John Doe";
|
private String name = "John Doe";
|
||||||
private String foreignLowercase = "\u0069";
|
private String foreignLowercase = "\u0069";
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenMixedCaseString_WhenToUpperCase_ThenResultIsUpperCase() {
|
public void givenMixedCaseString_WhenToUpperCase_ThenResultIsUpperCase() {
|
||||||
assertEquals("JOHN DOE", name.toUpperCase());
|
assertEquals("JOHN DOE", name.toUpperCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenForeignString_WhenToUpperCaseWithoutLocale_ThenResultIsUpperCase() {
|
public void givenForeignString_WhenToUpperCaseWithoutLocale_ThenResultIsUpperCase() {
|
||||||
assertEquals("\u0049", foreignLowercase.toUpperCase());
|
assertEquals("\u0049", foreignLowercase.toUpperCase());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void givenForeignString_WhenToUpperCaseWithLocale_ThenResultIsUpperCase() {
|
public void givenForeignString_WhenToUpperCaseWithLocale_ThenResultIsUpperCase() {
|
||||||
assertEquals("\u0130", foreignLowercase.toUpperCase(TURKISH));
|
assertEquals("\u0130", foreignLowercase.toUpperCase(TURKISH));
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,21 +1,17 @@
|
|||||||
package com.baeldung.string.emptystrings;
|
package com.baeldung.emptystrings;
|
||||||
|
|
||||||
import static org.hamcrest.Matchers.iterableWithSize;
|
import com.google.common.base.Strings;
|
||||||
import static org.junit.Assert.assertFalse;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import static org.junit.Assert.assertThat;
|
import org.junit.Test;
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import javax.validation.ConstraintViolation;
|
import javax.validation.ConstraintViolation;
|
||||||
import javax.validation.Validation;
|
import javax.validation.Validation;
|
||||||
import javax.validation.Validator;
|
import javax.validation.Validator;
|
||||||
import javax.validation.ValidatorFactory;
|
import javax.validation.ValidatorFactory;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import static org.hamcrest.Matchers.iterableWithSize;
|
||||||
import org.junit.Test;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
import com.google.common.base.Strings;
|
|
||||||
|
|
||||||
public class EmptyStringsUnitTest {
|
public class EmptyStringsUnitTest {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.equalsIgnoreCase;
|
package com.baeldung.equalsIgnoreCase;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
@ -1,11 +1,9 @@
|
|||||||
package com.baeldung.initialization;
|
package com.baeldung.initialization;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
import static org.junit.Assert.assertFalse;
|
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
public class StringInitializationUnitTest {
|
public class StringInitializationUnitTest {
|
||||||
|
|
||||||
private String fieldString;
|
private String fieldString;
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung;
|
package com.baeldung.stringconcatenation;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
16
core-java-modules/core-java-string-operations/README.md
Normal file
16
core-java-modules/core-java-string-operations/README.md
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
## Java String Operations
|
||||||
|
|
||||||
|
This module contains articles about string operations.
|
||||||
|
|
||||||
|
### Relevant Articles:
|
||||||
|
- [Comparing Strings in Java](https://www.baeldung.com/java-compare-strings)
|
||||||
|
- [Check If a String Is Numeric in Java](https://www.baeldung.com/java-check-string-number)
|
||||||
|
- [Get Substring from String in Java](https://www.baeldung.com/java-substring)
|
||||||
|
- [Split a String in Java](https://www.baeldung.com/java-split-string)
|
||||||
|
- [Common String Operations in Java](https://www.baeldung.com/java-string-operations)
|
||||||
|
- [Java toString() Method](https://www.baeldung.com/java-tostring)
|
||||||
|
- [String Operations with Java Streams](https://www.baeldung.com/java-stream-operations-on-strings)
|
||||||
|
- [Adding a Newline Character to a String in Java](https://www.baeldung.com/java-string-newline)
|
||||||
|
- [Check If a String Contains a Substring](https://www.baeldung.com/java-string-contains-substring)
|
||||||
|
- [Java Base64 Encoding and Decoding](https://www.baeldung.com/java-base64-encode-and-decode)
|
||||||
|
- More articles: [[next -->]](../core-java-string-operations-2)
|
66
core-java-modules/core-java-string-operations/pom.xml
Normal file
66
core-java-modules/core-java-string-operations/pom.xml
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>core-java-string-operations</artifactId>
|
||||||
|
<version>0.1.0-SNAPSHOT</version>
|
||||||
|
<packaging>jar</packaging>
|
||||||
|
<name>core-java-string-operations</name>
|
||||||
|
|
||||||
|
<parent>
|
||||||
|
<groupId>com.baeldung</groupId>
|
||||||
|
<artifactId>parent-java</artifactId>
|
||||||
|
<version>0.0.1-SNAPSHOT</version>
|
||||||
|
<relativePath>../../parent-java</relativePath>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.commons</groupId>
|
||||||
|
<artifactId>commons-lang3</artifactId>
|
||||||
|
<version>${commons-lang3.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.openjdk.jmh</groupId>
|
||||||
|
<artifactId>jmh-core</artifactId>
|
||||||
|
<version>${jmh-core.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>log4j</groupId>
|
||||||
|
<artifactId>log4j</artifactId>
|
||||||
|
<version>${log4j.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.openjdk.jmh</groupId>
|
||||||
|
<artifactId>jmh-generator-annprocess</artifactId>
|
||||||
|
<version>${jmh-generator.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-codec</groupId>
|
||||||
|
<artifactId>commons-codec</artifactId>
|
||||||
|
<version>${commons-codec.version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.assertj</groupId>
|
||||||
|
<artifactId>assertj-core</artifactId>
|
||||||
|
<version>${assertj.version}</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<finalName>core-java-string-operations</finalName>
|
||||||
|
<resources>
|
||||||
|
<resource>
|
||||||
|
<directory>src/main/resources</directory>
|
||||||
|
<filtering>true</filtering>
|
||||||
|
</resource>
|
||||||
|
</resources>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<commons-lang3.version>3.8.1</commons-lang3.version>
|
||||||
|
<assertj.version>3.6.1</assertj.version>
|
||||||
|
<commons-codec.version>1.10</commons-codec.version>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
</project>
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.isnumeric;
|
package com.baeldung.isnumeric;
|
||||||
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.isnumeric;
|
package com.baeldung.isnumeric;
|
||||||
|
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.isnumeric;
|
package com.baeldung.isnumeric;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.commons.lang3.math.NumberUtils;
|
import org.apache.commons.lang3.math.NumberUtils;
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.isnumeric;
|
package com.baeldung.isnumeric;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.newline;
|
package com.baeldung.newline;
|
||||||
|
|
||||||
public class AddingNewLineToString {
|
public class AddingNewLineToString {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string;
|
package com.baeldung.streamoperations;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
@ -1,18 +1,11 @@
|
|||||||
package com.baeldung.string.search.performance;
|
package com.baeldung.substringsearch;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
import org.openjdk.jmh.annotations.*;
|
||||||
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import org.openjdk.jmh.annotations.Benchmark;
|
|
||||||
import org.openjdk.jmh.annotations.BenchmarkMode;
|
|
||||||
import org.openjdk.jmh.annotations.Fork;
|
|
||||||
import org.openjdk.jmh.annotations.Mode;
|
|
||||||
import org.openjdk.jmh.annotations.OutputTimeUnit;
|
|
||||||
import org.openjdk.jmh.annotations.Scope;
|
|
||||||
import org.openjdk.jmh.annotations.Setup;
|
|
||||||
import org.openjdk.jmh.annotations.State;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Based on https://github.com/tedyoung/indexof-contains-benchmark
|
* Based on https://github.com/tedyoung/indexof-contains-benchmark
|
||||||
*/
|
*/
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.tostring;
|
package com.baeldung.tostring;
|
||||||
|
|
||||||
public class Customer {
|
public class Customer {
|
||||||
private String firstName;
|
private String firstName;
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.tostring;
|
package com.baeldung.tostring;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.tostring;
|
package com.baeldung.tostring;
|
||||||
|
|
||||||
public class CustomerComplexObjectToString extends Customer {
|
public class CustomerComplexObjectToString extends Customer {
|
||||||
private Order order;
|
private Order order;
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.tostring;
|
package com.baeldung.tostring;
|
||||||
|
|
||||||
public class CustomerPrimitiveToString extends Customer {
|
public class CustomerPrimitiveToString extends Customer {
|
||||||
private long balance;
|
private long balance;
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.tostring;
|
package com.baeldung.tostring;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.tostring;
|
package com.baeldung.tostring;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.tostring;
|
package com.baeldung.tostring;
|
||||||
|
|
||||||
public class Order {
|
public class Order {
|
||||||
|
|
@ -0,0 +1,8 @@
|
|||||||
|
# Root logger option
|
||||||
|
log4j.rootLogger=DEBUG, stdout
|
||||||
|
|
||||||
|
# Redirect log messages to console
|
||||||
|
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
|
||||||
|
log4j.appender.stdout.Target=System.out
|
||||||
|
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
|
||||||
|
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
|
@ -1,16 +1,15 @@
|
|||||||
package com.baeldung.base64encodinganddecoding;
|
package com.baeldung.base64encodinganddecoding;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import org.junit.Test;
|
||||||
import static org.junit.Assert.assertTrue;
|
|
||||||
|
|
||||||
|
import javax.xml.bind.DatatypeConverter;
|
||||||
import java.io.UnsupportedEncodingException;
|
import java.io.UnsupportedEncodingException;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Base64;
|
import java.util.Base64;
|
||||||
|
|
||||||
import javax.xml.bind.DatatypeConverter;
|
import static org.junit.Assert.assertEquals;
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
import org.junit.Test;
|
|
||||||
|
|
||||||
public class StringToByteArrayUnitTest {
|
public class StringToByteArrayUnitTest {
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.isnumeric;
|
package com.baeldung.isnumeric;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.isnumeric;
|
package com.baeldung.isnumeric;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.isnumeric;
|
package com.baeldung.isnumeric;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.isnumeric;
|
package com.baeldung.isnumeric;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.isnumeric;
|
package com.baeldung.isnumeric;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.isnumeric;
|
package com.baeldung.isnumeric;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string;
|
package com.baeldung.split;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string;
|
package com.baeldung.streamoperations;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string;
|
package com.baeldung.stringcomparison;
|
||||||
|
|
||||||
import static org.assertj.core.api.Assertions.assertThat;
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string;
|
package com.baeldung.substring;
|
||||||
|
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
@ -1,12 +1,12 @@
|
|||||||
package com.baeldung.string.search;
|
package com.baeldung.substringsearch;
|
||||||
|
|
||||||
import java.util.regex.Matcher;
|
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.junit.Assert;
|
import org.junit.Assert;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.util.regex.Matcher;
|
||||||
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BAEL-2832: Different ways to check if a Substring could be found in a String.
|
* BAEL-2832: Different ways to check if a Substring could be found in a String.
|
||||||
*/
|
*/
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.tostring;
|
package com.baeldung.tostring;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.tostring;
|
package com.baeldung.tostring;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.tostring;
|
package com.baeldung.tostring;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
package com.baeldung.string.tostring;
|
package com.baeldung.tostring;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
@ -1,5 +1,5 @@
|
|||||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>com.baeldung.ethereum</groupId>
|
<groupId>com.baeldung.ethereum</groupId>
|
||||||
<artifactId>ethereum</artifactId>
|
<artifactId>ethereum</artifactId>
|
||||||
@ -215,5 +215,4 @@
|
|||||||
<slf4j.version>1.7.25</slf4j.version>
|
<slf4j.version>1.7.25</slf4j.version>
|
||||||
<spring-boot-maven-plugin.version>2.0.4.RELEASE</spring-boot-maven-plugin.version>
|
<spring-boot-maven-plugin.version>2.0.4.RELEASE</spring-boot-maven-plugin.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
@ -13,7 +13,7 @@ import static org.hamcrest.MatcherAssert.assertThat;
|
|||||||
import static org.hamcrest.Matchers.equalTo;
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
|
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT, classes = AppConfig.class)
|
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = AppConfig.class)
|
||||||
public class SpringAndHystrixIntegrationTest {
|
public class SpringAndHystrixIntegrationTest {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -1,8 +1,10 @@
|
|||||||
package com.baeldung.jackson.annotation;
|
package com.baeldung.jackson.annotation;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonGetter;
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
import com.fasterxml.jackson.annotation.JsonInclude.Include;
|
||||||
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonSetter;
|
||||||
|
|
||||||
@JsonInclude(Include.NON_NULL)
|
@JsonInclude(Include.NON_NULL)
|
||||||
@JsonPropertyOrder({ "name", "id" })
|
@JsonPropertyOrder({ "name", "id" })
|
||||||
@ -18,4 +20,14 @@ public class MyBean {
|
|||||||
this.id = id;
|
this.id = id;
|
||||||
this.name = name;
|
this.name = name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@JsonGetter("name")
|
||||||
|
public String getTheName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@JsonSetter("name")
|
||||||
|
public void setTheName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,13 +5,7 @@ This module contains articles about strings in Java.
|
|||||||
### Relevant Articles:
|
### Relevant Articles:
|
||||||
|
|
||||||
- [Java Localization – Formatting Messages](https://www.baeldung.com/java-localization-messages-formatting)
|
- [Java Localization – Formatting Messages](https://www.baeldung.com/java-localization-messages-formatting)
|
||||||
- [Check If a String Contains a Substring](https://www.baeldung.com/java-string-contains-substring)
|
|
||||||
- [Java – Generate Random String](https://www.baeldung.com/java-random-string)
|
- [Java – Generate Random String](https://www.baeldung.com/java-random-string)
|
||||||
- [Java Base64 Encoding and Decoding](https://www.baeldung.com/java-base64-encode-and-decode)
|
|
||||||
- [Concatenating Strings In Java](https://www.baeldung.com/java-strings-concatenation)
|
|
||||||
- [Java String Interview Questions and Answers](https://www.baeldung.com/java-string-interview-questions)
|
- [Java String Interview Questions and Answers](https://www.baeldung.com/java-string-interview-questions)
|
||||||
- [Checking for Empty or Blank Strings in Java](https://www.baeldung.com/java-blank-empty-strings)
|
|
||||||
- [String Initialization in Java](https://www.baeldung.com/java-string-initialization)
|
|
||||||
- [Java Multi-line String](https://www.baeldung.com/java-multiline-string)
|
- [Java Multi-line String](https://www.baeldung.com/java-multiline-string)
|
||||||
- [String toLowerCase and toUpperCase Methods in Java](https://www.baeldung.com/java-string-convert-case)
|
- More articles: [[<-- prev>]](/java-strings)
|
||||||
- More articles: [[<-- prev>]](/java-strings) [[next -->]](/java-strings-3)
|
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
## Java Strings Cookbooks and Examples
|
|
||||||
|
|
||||||
This module contains articles about strings in Java.
|
|
||||||
|
|
||||||
### Relevant Articles:
|
|
||||||
- [Java String equalsIgnoreCase()](https://www.baeldung.com/java-string-equalsignorecase)
|
|
||||||
- [Finding the Difference Between Two Strings in Java](https://www.baeldung.com/java-difference-between-two-strings)
|
|
||||||
- [Counting Words in a String](https://www.baeldung.com/java-word-counting)
|
|
||||||
- [Convert Character Array to String in Java](https://www.baeldung.com/java-char-array-to-string)
|
|
||||||
- More articles: [[<-- prev>]](/java-strings-2)
|
|
@ -1,161 +0,0 @@
|
|||||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
|
||||||
<modelVersion>4.0.0</modelVersion>
|
|
||||||
<artifactId>java-strings-3</artifactId>
|
|
||||||
<version>0.1.0-SNAPSHOT</version>
|
|
||||||
<packaging>jar</packaging>
|
|
||||||
<name>java-strings-3</name>
|
|
||||||
|
|
||||||
<parent>
|
|
||||||
<groupId>com.baeldung</groupId>
|
|
||||||
<artifactId>parent-java</artifactId>
|
|
||||||
<version>0.0.1-SNAPSHOT</version>
|
|
||||||
<relativePath>../parent-java</relativePath>
|
|
||||||
</parent>
|
|
||||||
|
|
||||||
<dependencies>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.openjdk.jmh</groupId>
|
|
||||||
<artifactId>jmh-core</artifactId>
|
|
||||||
<version>${jmh-core.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.openjdk.jmh</groupId>
|
|
||||||
<artifactId>jmh-generator-annprocess</artifactId>
|
|
||||||
<version>${jmh-core.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.ibm.icu</groupId>
|
|
||||||
<artifactId>icu4j</artifactId>
|
|
||||||
<version>${icu4j.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.google.guava</groupId>
|
|
||||||
<artifactId>guava</artifactId>
|
|
||||||
<version>${guava.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.commons</groupId>
|
|
||||||
<artifactId>commons-lang3</artifactId>
|
|
||||||
<version>${commons-lang3.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-io</groupId>
|
|
||||||
<artifactId>commons-io</artifactId>
|
|
||||||
<version>${commons-io.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>commons-codec</groupId>
|
|
||||||
<artifactId>commons-codec</artifactId>
|
|
||||||
<version>${commons-codec.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>junit</groupId>
|
|
||||||
<artifactId>junit</artifactId>
|
|
||||||
<version>${junit.version}</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.hamcrest</groupId>
|
|
||||||
<artifactId>hamcrest-library</artifactId>
|
|
||||||
<version>${org.hamcrest.version}</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.assertj</groupId>
|
|
||||||
<artifactId>assertj-core</artifactId>
|
|
||||||
<version>${assertj.version}</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.bitbucket.cowwoc</groupId>
|
|
||||||
<artifactId>diff-match-patch</artifactId>
|
|
||||||
<version>1.2</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<!-- Added for password generation -->
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.passay</groupId>
|
|
||||||
<artifactId>passay</artifactId>
|
|
||||||
<version>${passay.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.apache.commons</groupId>
|
|
||||||
<artifactId>commons-text</artifactId>
|
|
||||||
<version>${commons-text.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.vdurmont</groupId>
|
|
||||||
<artifactId>emoji-java</artifactId>
|
|
||||||
<version>${emoji-java.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.ahocorasick</groupId>
|
|
||||||
<artifactId>ahocorasick</artifactId>
|
|
||||||
<version>${ahocorasick.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.validation</groupId>
|
|
||||||
<artifactId>validation-api</artifactId>
|
|
||||||
<version>${validation-api.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.hibernate.validator</groupId>
|
|
||||||
<artifactId>hibernate-validator</artifactId>
|
|
||||||
<version>${hibernate-validator.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>javax.el</groupId>
|
|
||||||
<artifactId>javax.el-api</artifactId>
|
|
||||||
<version>${javax.el-api.version}</version>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.glassfish.web</groupId>
|
|
||||||
<artifactId>javax.el</artifactId>
|
|
||||||
<version>${javax.el.version}</version>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
|
||||||
|
|
||||||
<build>
|
|
||||||
<finalName>java-strings-3</finalName>
|
|
||||||
<resources>
|
|
||||||
<resource>
|
|
||||||
<directory>src/main/resources</directory>
|
|
||||||
<filtering>true</filtering>
|
|
||||||
</resource>
|
|
||||||
</resources>
|
|
||||||
|
|
||||||
<plugins>
|
|
||||||
<plugin>
|
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
|
||||||
<artifactId>maven-compiler-plugin</artifactId>
|
|
||||||
<version>${maven-compiler-plugin.version}</version>
|
|
||||||
<configuration>
|
|
||||||
<source>${java.version}</source>
|
|
||||||
<target>${java.version}</target>
|
|
||||||
<compilerArgument>-parameters</compilerArgument>
|
|
||||||
</configuration>
|
|
||||||
</plugin>
|
|
||||||
</plugins>
|
|
||||||
</build>
|
|
||||||
|
|
||||||
<properties>
|
|
||||||
<commons-lang3.version>3.8.1</commons-lang3.version>
|
|
||||||
<commons-codec.version>1.10</commons-codec.version>
|
|
||||||
<passay.version>1.3.1</passay.version>
|
|
||||||
<!-- testing -->
|
|
||||||
<assertj.version>3.6.1</assertj.version>
|
|
||||||
<emoji-java.version>4.0.0</emoji-java.version>
|
|
||||||
<ahocorasick.version>0.4.0</ahocorasick.version>
|
|
||||||
<icu4j.version>61.1</icu4j.version>
|
|
||||||
<guava.version>28.0-jre</guava.version>
|
|
||||||
<commons-text.version>1.4</commons-text.version>
|
|
||||||
<validation-api.version>2.0.0.Final</validation-api.version>
|
|
||||||
<hibernate-validator.version>6.0.2.Final</hibernate-validator.version>
|
|
||||||
<javax.el-api.version>3.0.0</javax.el-api.version>
|
|
||||||
<javax.el.version>2.2.6</javax.el.version>
|
|
||||||
</properties>
|
|
||||||
|
|
||||||
</project>
|
|
13
java-strings-3/src/main/resources/.gitignore
vendored
13
java-strings-3/src/main/resources/.gitignore
vendored
@ -1,13 +0,0 @@
|
|||||||
*.class
|
|
||||||
|
|
||||||
#folders#
|
|
||||||
/target
|
|
||||||
/neoDb*
|
|
||||||
/data
|
|
||||||
/src/main/webapp/WEB-INF/classes
|
|
||||||
*/META-INF/*
|
|
||||||
|
|
||||||
# Packaged files #
|
|
||||||
*.jar
|
|
||||||
*.war
|
|
||||||
*.ear
|
|
13
java-strings-3/src/test/resources/.gitignore
vendored
13
java-strings-3/src/test/resources/.gitignore
vendored
@ -1,13 +0,0 @@
|
|||||||
*.class
|
|
||||||
|
|
||||||
#folders#
|
|
||||||
/target
|
|
||||||
/neoDb*
|
|
||||||
/data
|
|
||||||
/src/main/webapp/WEB-INF/classes
|
|
||||||
*/META-INF/*
|
|
||||||
|
|
||||||
# Packaged files #
|
|
||||||
*.jar
|
|
||||||
*.war
|
|
||||||
*.ear
|
|
@ -3,10 +3,4 @@
|
|||||||
This module contains articles about operations on strings in Java.
|
This module contains articles about operations on strings in Java.
|
||||||
|
|
||||||
### Relevant Articles:
|
### Relevant Articles:
|
||||||
- [Comparing Strings in Java](https://www.baeldung.com/java-compare-strings)
|
|
||||||
- [Check If a String Is Numeric in Java](https://www.baeldung.com/java-check-string-number)
|
|
||||||
- [Get Substring from String in Java](https://www.baeldung.com/java-substring)
|
|
||||||
- [Guide to Java String Pool](https://www.baeldung.com/java-string-pool)
|
- [Guide to Java String Pool](https://www.baeldung.com/java-string-pool)
|
||||||
- [Split a String in Java](https://www.baeldung.com/java-split-string)
|
|
||||||
- [Common String Operations in Java](https://www.baeldung.com/java-string-operations)
|
|
||||||
- [Java toString() Method](https://www.baeldung.com/java-tostring)
|
|
||||||
|
@ -3,10 +3,8 @@
|
|||||||
This module contains articles about strings in Java.
|
This module contains articles about strings in Java.
|
||||||
|
|
||||||
### Relevant Articles:
|
### Relevant Articles:
|
||||||
- [String Operations with Java Streams](https://www.baeldung.com/java-stream-operations-on-strings)
|
|
||||||
- [Use char[] Array Over a String for Manipulating Passwords in Java?](https://www.baeldung.com/java-storing-passwords)
|
- [Use char[] Array Over a String for Manipulating Passwords in Java?](https://www.baeldung.com/java-storing-passwords)
|
||||||
- [Compact Strings in Java 9](https://www.baeldung.com/java-9-compact-string)
|
- [Compact Strings in Java 9](https://www.baeldung.com/java-9-compact-string)
|
||||||
- [String Not Empty Test Assertions in Java](https://www.baeldung.com/java-assert-string-not-empty)
|
- [String Not Empty Test Assertions in Java](https://www.baeldung.com/java-assert-string-not-empty)
|
||||||
- [String Performance Hints](https://www.baeldung.com/java-string-performance)
|
- [String Performance Hints](https://www.baeldung.com/java-string-performance)
|
||||||
- [Adding a Newline Character to a String in Java](https://www.baeldung.com/java-string-newline)
|
|
||||||
- More articles: [[next -->]](/java-strings-2)
|
- More articles: [[next -->]](/java-strings-2)
|
||||||
|
@ -0,0 +1,42 @@
|
|||||||
|
package org.baeldung.javaxval.messageinterpolator;
|
||||||
|
|
||||||
|
import javax.validation.constraints.Email;
|
||||||
|
import javax.validation.constraints.Min;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
|
||||||
|
public class Person {
|
||||||
|
|
||||||
|
@Size(min = 10, max = 100, message = "Name should be between {min} and {max} characters")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@Min(value = 18, message = "Age should not be less than {value}")
|
||||||
|
private int age;
|
||||||
|
|
||||||
|
@Email(message = "Email address should be in a correct format: ${validatedValue}")
|
||||||
|
private String email;
|
||||||
|
|
||||||
|
public String getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setName(String name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getAge() {
|
||||||
|
return age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAge(int age) {
|
||||||
|
this.age = age;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getEmail() {
|
||||||
|
return email;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setEmail(String email) {
|
||||||
|
this.email = email;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package org.baeldung.javaxval.messageinterpolator;
|
||||||
|
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.validation.ConstraintViolation;
|
||||||
|
import javax.validation.Validation;
|
||||||
|
import javax.validation.Validator;
|
||||||
|
import javax.validation.ValidatorFactory;
|
||||||
|
|
||||||
|
import org.hibernate.validator.messageinterpolation.ParameterMessageInterpolator;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
public class ParameterMessageInterpolaterIntegrationTest {
|
||||||
|
|
||||||
|
private static Validator validator;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void beforeClass() {
|
||||||
|
ValidatorFactory validatorFactory = Validation.byDefaultProvider()
|
||||||
|
.configure()
|
||||||
|
.messageInterpolator(new ParameterMessageInterpolator())
|
||||||
|
.buildValidatorFactory();
|
||||||
|
|
||||||
|
validator = validatorFactory.getValidator();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenNameLengthLessThanMin_whenValidate_thenValidationFails() {
|
||||||
|
Person person = new Person();
|
||||||
|
person.setName("John Doe");
|
||||||
|
person.setAge(18);
|
||||||
|
|
||||||
|
Set<ConstraintViolation<Person>> violations = validator.validate(person);
|
||||||
|
assertEquals(1, violations.size());
|
||||||
|
|
||||||
|
ConstraintViolation<Person> violation = violations.iterator().next();
|
||||||
|
assertEquals("Name should be between 10 and 100 characters", violation.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenAgeIsLessThanMin_whenValidate_thenValidationFails() {
|
||||||
|
Person person = new Person();
|
||||||
|
person.setName("John Stephaner Doe");
|
||||||
|
person.setAge(16);
|
||||||
|
|
||||||
|
Set<ConstraintViolation<Person>> violations = validator.validate(person);
|
||||||
|
assertEquals(1, violations.size());
|
||||||
|
|
||||||
|
ConstraintViolation<Person> violation = violations.iterator().next();
|
||||||
|
assertEquals("Age should not be less than 18", violation.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void givenEmailIsMalformed_whenValidate_thenValidationFails() {
|
||||||
|
Person person = new Person();
|
||||||
|
person.setName("John Stephaner Doe");
|
||||||
|
person.setAge(18);
|
||||||
|
person.setEmail("johndoe.dev");
|
||||||
|
|
||||||
|
Set<ConstraintViolation<Person>> violations = validator.validate(person);
|
||||||
|
assertEquals(1, violations.size());
|
||||||
|
|
||||||
|
ConstraintViolation<Person> violation = violations.iterator().next();
|
||||||
|
assertEquals("Email address should be in a correct format: ${validatedValue}", violation.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -230,7 +230,7 @@
|
|||||||
</build>
|
</build>
|
||||||
</profile>
|
</profile>
|
||||||
<profile>
|
<profile>
|
||||||
<id>wildfly-remote-arquillian</id>
|
<id>wildfly-remote-arquillian-disabled</id>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jboss.resteasy</groupId>
|
<groupId>org.jboss.resteasy</groupId>
|
||||||
|
@ -30,12 +30,6 @@
|
|||||||
<artifactId>spring-boot-starter</artifactId>
|
<artifactId>spring-boot-starter</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
<artifactId>spring-boot-starter-test</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.hsqldb</groupId>
|
<groupId>org.hsqldb</groupId>
|
||||||
<artifactId>hsqldb</artifactId>
|
<artifactId>hsqldb</artifactId>
|
||||||
|
5
libraries-data-io/src/main/resources/csv/twoColumn.csv
Normal file
5
libraries-data-io/src/main/resources/csv/twoColumn.csv
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
colA, ColB
|
||||||
|
A, B
|
||||||
|
C, D
|
||||||
|
G, G
|
||||||
|
G, F
|
|
@ -125,19 +125,6 @@
|
|||||||
<version>${java-hamcrest.version}</version>
|
<version>${java-hamcrest.version}</version>
|
||||||
<scope>test</scope>
|
<scope>test</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>net.serenity-bdd</groupId>
|
|
||||||
<artifactId>serenity-core</artifactId>
|
|
||||||
<version>${serenity.version}</version>
|
|
||||||
<scope>test</scope>
|
|
||||||
<exclusions>
|
|
||||||
<exclusion>
|
|
||||||
<groupId>org.asciidoctor</groupId>
|
|
||||||
<artifactId>asciidoctorj</artifactId>
|
|
||||||
</exclusion>
|
|
||||||
</exclusions>
|
|
||||||
</dependency>
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.asciidoctor</groupId>
|
<groupId>org.asciidoctor</groupId>
|
||||||
<artifactId>asciidoctor-maven-plugin</artifactId>
|
<artifactId>asciidoctor-maven-plugin</artifactId>
|
||||||
|
@ -78,6 +78,6 @@
|
|||||||
<rest-assured.version>3.3.0</rest-assured.version>
|
<rest-assured.version>3.3.0</rest-assured.version>
|
||||||
<!-- plugins -->
|
<!-- plugins -->
|
||||||
<thin.version>1.0.22.RELEASE</thin.version>
|
<thin.version>1.0.22.RELEASE</thin.version>
|
||||||
<spring-boot.version>2.1.7.RELEASE</spring-boot.version>
|
<spring-boot.version>2.1.9.RELEASE</spring-boot.version>
|
||||||
</properties>
|
</properties>
|
||||||
</project>
|
</project>
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
|
||||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<artifactId>parent-kotlin</artifactId>
|
<artifactId>parent-kotlin</artifactId>
|
||||||
<name>parent-kotlin</name>
|
<name>parent-kotlin</name>
|
||||||
@ -13,34 +13,34 @@
|
|||||||
<version>1.0.0-SNAPSHOT</version>
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
<repositories>
|
<repositories>
|
||||||
<repository>
|
<repository>
|
||||||
<id>jcenter</id>
|
<id>jcenter</id>
|
||||||
<url>http://jcenter.bintray.com</url>
|
<url>http://jcenter.bintray.com</url>
|
||||||
</repository>
|
</repository>
|
||||||
<repository>
|
<repository>
|
||||||
<id>kotlin-ktor</id>
|
<id>kotlin-ktor</id>
|
||||||
<url>https://dl.bintray.com/kotlin/ktor/</url>
|
<url>https://dl.bintray.com/kotlin/ktor/</url>
|
||||||
</repository>
|
</repository>
|
||||||
<repository>
|
<repository>
|
||||||
<id>kotlin-eap</id>
|
<id>kotlin-eap</id>
|
||||||
<url>http://dl.bintray.com/kotlin/kotlin-eap</url>
|
<url>http://dl.bintray.com/kotlin/kotlin-eap</url>
|
||||||
</repository>
|
</repository>
|
||||||
<repository>
|
<repository>
|
||||||
<id>spring-milestone</id>
|
<id>spring-milestone</id>
|
||||||
<name>Spring Milestone Repository</name>
|
<name>Spring Milestone Repository</name>
|
||||||
<url>http://repo.spring.io/milestone</url>
|
<url>http://repo.spring.io/milestone</url>
|
||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
<pluginRepositories>
|
<pluginRepositories>
|
||||||
<pluginRepository>
|
<pluginRepository>
|
||||||
<id>kotlin-eap</id>
|
<id>kotlin-eap</id>
|
||||||
<url>http://dl.bintray.com/kotlin/kotlin-eap</url>
|
<url>http://dl.bintray.com/kotlin/kotlin-eap</url>
|
||||||
</pluginRepository>
|
</pluginRepository>
|
||||||
</pluginRepositories>
|
</pluginRepositories>
|
||||||
|
|
||||||
<dependencyManagement>
|
<dependencyManagement>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
@ -56,15 +56,15 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jetbrains.kotlin</groupId>
|
<groupId>org.jetbrains.kotlin</groupId>
|
||||||
<artifactId>kotlin-stdlib-jdk8</artifactId>
|
<artifactId>kotlin-stdlib-jdk8</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jetbrains.kotlin</groupId>
|
<groupId>org.jetbrains.kotlin</groupId>
|
||||||
<artifactId>kotlin-stdlib</artifactId>
|
<artifactId>kotlin-stdlib</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jetbrains.kotlin</groupId>
|
<groupId>org.jetbrains.kotlin</groupId>
|
||||||
<artifactId>kotlin-reflect</artifactId>
|
<artifactId>kotlin-reflect</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jetbrains.kotlinx</groupId>
|
<groupId>org.jetbrains.kotlinx</groupId>
|
||||||
@ -113,9 +113,9 @@
|
|||||||
<sourceDir>${project.basedir}/src/main/java</sourceDir>
|
<sourceDir>${project.basedir}/src/main/java</sourceDir>
|
||||||
</sourceDirs>
|
</sourceDirs>
|
||||||
<jvmTarget>${java.version}</jvmTarget>
|
<jvmTarget>${java.version}</jvmTarget>
|
||||||
<args>
|
<args>
|
||||||
<arg>-Xjvm-default=enable</arg>
|
<arg>-Xjvm-default=enable</arg>
|
||||||
</args>
|
</args>
|
||||||
</configuration>
|
</configuration>
|
||||||
</execution>
|
</execution>
|
||||||
<execution>
|
<execution>
|
||||||
|
@ -26,11 +26,6 @@
|
|||||||
<groupId>com.h2database</groupId>
|
<groupId>com.h2database</groupId>
|
||||||
<artifactId>h2</artifactId>
|
<artifactId>h2</artifactId>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
|
||||||
<groupId>org.springframework.boot</groupId>
|
|
||||||
<artifactId>spring-boot-starter-test</artifactId>
|
|
||||||
<scope>test</scope>
|
|
||||||
</dependency>
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
|
@ -17,14 +17,17 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-web</artifactId>
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
<version>${spring-boot.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
<artifactId>spring-boot-starter-thymeleaf</artifactId>
|
||||||
|
<version>${spring-boot.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
<artifactId>spring-boot-starter-data-jpa</artifactId>
|
||||||
|
<version>${spring-boot.version}</version>
|
||||||
<exclusions>
|
<exclusions>
|
||||||
<exclusion>
|
<exclusion>
|
||||||
<groupId>com.zaxxer</groupId>
|
<groupId>com.zaxxer</groupId>
|
||||||
@ -35,6 +38,7 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
<artifactId>spring-boot-starter-test</artifactId>
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<version>${spring-boot.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.mockito</groupId>
|
<groupId>org.mockito</groupId>
|
||||||
@ -99,6 +103,7 @@
|
|||||||
<validation-api.version>2.0.1.Final</validation-api.version>
|
<validation-api.version>2.0.1.Final</validation-api.version>
|
||||||
<derby.version>10.13.1.1</derby.version>
|
<derby.version>10.13.1.1</derby.version>
|
||||||
<hsqldb.version>2.3.4</hsqldb.version>
|
<hsqldb.version>2.3.4</hsqldb.version>
|
||||||
|
<spring-boot.version>2.1.7.RELEASE</spring-boot.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
@ -87,7 +87,8 @@
|
|||||||
<version>${maven-surefire-plugin.version}</version>
|
<version>${maven-surefire-plugin.version}</version>
|
||||||
<configuration>
|
<configuration>
|
||||||
<verbose>true</verbose>
|
<verbose>true</verbose>
|
||||||
<fork>true</fork>
|
<fork>false</fork>
|
||||||
|
<forkCount>0</forkCount>
|
||||||
<argLine>-Xmx1024m</argLine>
|
<argLine>-Xmx1024m</argLine>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
@ -38,7 +38,7 @@ public class RedisKeyCommandsIntegrationTest {
|
|||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void startRedisServer() throws IOException {
|
public static void startRedisServer() throws IOException {
|
||||||
redisServer = new RedisServerBuilder().port(6379).setting("maxheap 256M").build();
|
redisServer = new RedisServerBuilder().port(6379).setting("maxmemory 256M").build();
|
||||||
redisServer.start();
|
redisServer.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -36,7 +36,7 @@ public class RedisTemplateListOpsIntegrationTest {
|
|||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void startRedisServer() throws IOException {
|
public static void startRedisServer() throws IOException {
|
||||||
redisServer = new RedisServerBuilder().port(6379).setting("maxheap 128M").build();
|
redisServer = new RedisServerBuilder().port(6379).setting("maxmemory 128M").build();
|
||||||
redisServer.start();
|
redisServer.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ public class RedisTemplateValueOpsIntegrationTest {
|
|||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void startRedisServer() throws IOException {
|
public static void startRedisServer() throws IOException {
|
||||||
redisServer = new RedisServerBuilder().port(6379).setting("maxheap 256M").build();
|
redisServer = new RedisServerBuilder().port(6379).setting("maxmemory 256M").build();
|
||||||
redisServer.start();
|
redisServer.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ public class RedisMessageListenerIntegrationTest {
|
|||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void startRedisServer() throws IOException {
|
public static void startRedisServer() throws IOException {
|
||||||
redisServer = new RedisServerBuilder().port(6379).setting("maxheap 256M").build();
|
redisServer = new RedisServerBuilder().port(6379).setting("maxmemory 256M").build();
|
||||||
redisServer.start();
|
redisServer.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ public class RedisMessageListenerIntegrationTest {
|
|||||||
public void testOnMessage() throws Exception {
|
public void testOnMessage() throws Exception {
|
||||||
String message = "Message " + UUID.randomUUID();
|
String message = "Message " + UUID.randomUUID();
|
||||||
redisMessagePublisher.publish(message);
|
redisMessagePublisher.publish(message);
|
||||||
Thread.sleep(100);
|
Thread.sleep(1000);
|
||||||
assertTrue(RedisMessageSubscriber.messageList.get(0).contains(message));
|
assertTrue(RedisMessageSubscriber.messageList.get(0).contains(message));
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -34,7 +34,7 @@ public class StudentRepositoryIntegrationTest {
|
|||||||
|
|
||||||
@BeforeClass
|
@BeforeClass
|
||||||
public static void startRedisServer() throws IOException {
|
public static void startRedisServer() throws IOException {
|
||||||
redisServer = new RedisServerBuilder().port(6379).setting("maxheap 128M").build();
|
redisServer = new RedisServerBuilder().port(6379).setting("maxmemory 128M").build();
|
||||||
redisServer.start();
|
redisServer.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,16 +1,35 @@
|
|||||||
package org.baeldung;
|
package org.baeldung;
|
||||||
|
|
||||||
|
import com.baeldung.spring.data.redis.config.RedisConfig;
|
||||||
|
import org.junit.AfterClass;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
import org.springframework.test.annotation.DirtiesContext;
|
||||||
import org.springframework.test.context.ContextConfiguration;
|
import org.springframework.test.context.ContextConfiguration;
|
||||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||||
|
import redis.embedded.RedisServerBuilder;
|
||||||
|
|
||||||
import com.baeldung.spring.data.redis.config.RedisConfig;
|
import static org.springframework.test.annotation.DirtiesContext.ClassMode.BEFORE_CLASS;
|
||||||
|
|
||||||
@RunWith(SpringJUnit4ClassRunner.class)
|
@RunWith(SpringJUnit4ClassRunner.class)
|
||||||
|
@DirtiesContext(classMode = BEFORE_CLASS)
|
||||||
@ContextConfiguration(classes = RedisConfig.class)
|
@ContextConfiguration(classes = RedisConfig.class)
|
||||||
public class SpringContextIntegrationTest {
|
public class SpringContextIntegrationTest {
|
||||||
|
|
||||||
|
private static redis.embedded.RedisServer redisServer;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void startRedisServer() {
|
||||||
|
redisServer = new RedisServerBuilder().port(6379).setting("maxmemory 256M").build();
|
||||||
|
redisServer.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public static void stopRedisServer() {
|
||||||
|
redisServer.stop();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void whenSpringContextIsBootstrapped_thenNoExceptions() {
|
public void whenSpringContextIsBootstrapped_thenNoExceptions() {
|
||||||
}
|
}
|
||||||
|
6
pom.xml
6
pom.xml
@ -440,6 +440,8 @@
|
|||||||
<module>core-java-modules/core-java-sun</module>
|
<module>core-java-modules/core-java-sun</module>
|
||||||
<module>core-java-modules/core-java-string-conversions</module>
|
<module>core-java-modules/core-java-string-conversions</module>
|
||||||
<module>core-java-modules/core-java-string-conversions-2</module>
|
<module>core-java-modules/core-java-string-conversions-2</module>
|
||||||
|
<module>core-java-modules/core-java-string-operations</module>
|
||||||
|
<module>core-java-modules/core-java-string-operations-2</module>
|
||||||
<module>core-java-modules/core-java-string-algorithms</module>
|
<module>core-java-modules/core-java-string-algorithms</module>
|
||||||
<module>core-java-modules/core-java-string-algorithms-2</module>
|
<module>core-java-modules/core-java-string-algorithms-2</module>
|
||||||
<module>core-java-modules/core-java-string-apis</module>
|
<module>core-java-modules/core-java-string-apis</module>
|
||||||
@ -507,7 +509,6 @@
|
|||||||
<module>java-spi</module>
|
<module>java-spi</module>
|
||||||
<module>java-strings</module>
|
<module>java-strings</module>
|
||||||
<module>java-strings-2</module>
|
<module>java-strings-2</module>
|
||||||
<module>java-strings-3</module>
|
|
||||||
<module>java-strings-ops</module>
|
<module>java-strings-ops</module>
|
||||||
<module>java-vavr-stream</module>
|
<module>java-vavr-stream</module>
|
||||||
<module>java-websocket</module>
|
<module>java-websocket</module>
|
||||||
@ -1211,6 +1212,8 @@
|
|||||||
<module>core-java-modules/core-java-sun</module>
|
<module>core-java-modules/core-java-sun</module>
|
||||||
<module>core-java-modules/core-java-string-conversions</module>
|
<module>core-java-modules/core-java-string-conversions</module>
|
||||||
<module>core-java-modules/core-java-string-conversions-2</module>
|
<module>core-java-modules/core-java-string-conversions-2</module>
|
||||||
|
<module>core-java-modules/core-java-string-operations</module>
|
||||||
|
<module>core-java-modules/core-java-string-operations-2</module>
|
||||||
<module>core-java-modules/core-java-string-algorithms</module>
|
<module>core-java-modules/core-java-string-algorithms</module>
|
||||||
<module>core-java-modules/core-java-string-algorithms-2</module>
|
<module>core-java-modules/core-java-string-algorithms-2</module>
|
||||||
<module>core-java-modules/core-java-string-apis</module>
|
<module>core-java-modules/core-java-string-apis</module>
|
||||||
@ -1276,7 +1279,6 @@
|
|||||||
<module>java-spi</module>
|
<module>java-spi</module>
|
||||||
<module>java-strings</module>
|
<module>java-strings</module>
|
||||||
<module>java-strings-2</module>
|
<module>java-strings-2</module>
|
||||||
<module>java-strings-3</module>
|
|
||||||
<module>java-strings-ops</module>
|
<module>java-strings-ops</module>
|
||||||
<module>java-vavr-stream</module>
|
<module>java-vavr-stream</module>
|
||||||
<module>java-websocket</module>
|
<module>java-websocket</module>
|
||||||
|
@ -8,7 +8,7 @@ import org.springframework.data.r2dbc.config.AbstractR2dbcConfiguration;
|
|||||||
import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories;
|
import org.springframework.data.r2dbc.repository.config.EnableR2dbcRepositories;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
//@EnableR2dbcRepositories(basePackages = "com.baeldung.r2dbc.repository")
|
@EnableR2dbcRepositories(basePackages = "com.baeldung.r2dbc.repository")
|
||||||
public class R2DBCConfiguration extends AbstractR2dbcConfiguration {
|
public class R2DBCConfiguration extends AbstractR2dbcConfiguration {
|
||||||
@Bean
|
@Bean
|
||||||
public H2ConnectionFactory connectionFactory() {
|
public H2ConnectionFactory connectionFactory() {
|
||||||
|
@ -4,10 +4,12 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import org.springframework.data.annotation.Id;
|
import org.springframework.data.annotation.Id;
|
||||||
|
import org.springframework.data.relational.core.mapping.Table;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
@Table
|
||||||
public class Player {
|
public class Player {
|
||||||
@Id
|
@Id
|
||||||
Integer id;
|
Integer id;
|
||||||
|
@ -111,12 +111,12 @@ public class R2dbcApplicationIntegrationTest {
|
|||||||
|
|
||||||
private void insertPlayers() {
|
private void insertPlayers() {
|
||||||
List<Player> players = Arrays.asList(
|
List<Player> players = Arrays.asList(
|
||||||
new Player(1, "Kaka", 37),
|
new Player(null, "Kaka", 37),
|
||||||
new Player(2, "Messi", 32),
|
new Player(null, "Messi", 32),
|
||||||
new Player(3, "Mbappé", 20),
|
new Player(null, "Mbappé", 20),
|
||||||
new Player(4, "CR7", 34),
|
new Player(null, "CR7", 34),
|
||||||
new Player(5, "Lewandowski", 30),
|
new Player(null, "Lewandowski", 30),
|
||||||
new Player(6, "Cavani", 32)
|
new Player(null, "Cavani", 32)
|
||||||
);
|
);
|
||||||
|
|
||||||
playerRepository.saveAll(players).subscribe();
|
playerRepository.saveAll(players).subscribe();
|
||||||
|
@ -46,14 +46,17 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jetbrains.kotlin</groupId>
|
<groupId>org.jetbrains.kotlin</groupId>
|
||||||
<artifactId>kotlin-stdlib-jre8</artifactId>
|
<artifactId>kotlin-stdlib-jre8</artifactId>
|
||||||
|
<version>${kotlin.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jetbrains.kotlin</groupId>
|
<groupId>org.jetbrains.kotlin</groupId>
|
||||||
<artifactId>kotlin-reflect</artifactId>
|
<artifactId>kotlin-reflect</artifactId>
|
||||||
|
<version>${kotlin.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.fasterxml.jackson.module</groupId>
|
<groupId>com.fasterxml.jackson.module</groupId>
|
||||||
<artifactId>jackson-module-kotlin</artifactId>
|
<artifactId>jackson-module-kotlin</artifactId>
|
||||||
|
<version>${jackson.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<!-- runtime and test scoped -->
|
<!-- runtime and test scoped -->
|
||||||
<dependency>
|
<dependency>
|
||||||
@ -170,7 +173,8 @@
|
|||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<jayway-rest-assured.version>2.9.0</jayway-rest-assured.version>
|
<jayway-rest-assured.version>2.9.0</jayway-rest-assured.version>
|
||||||
<kotlin.version>1.1.2</kotlin.version>
|
<jackson.version>2.9.9</jackson.version> <!-- Same as spring-boot-dependencies:2.1.7.RELEASE -->
|
||||||
|
<kotlin.version>1.2.71</kotlin.version> <!-- Same as spring-boot-dependencies:2.1.7.RELEASE -->
|
||||||
<start-class>com.baeldung.Spring5Application</start-class>
|
<start-class>com.baeldung.Spring5Application</start-class>
|
||||||
<httpclient.version>4.5.8</httpclient.version>
|
<httpclient.version>4.5.8</httpclient.version>
|
||||||
</properties>
|
</properties>
|
||||||
|
@ -71,5 +71,4 @@ public class LoginController {
|
|||||||
|
|
||||||
return "loginSuccess";
|
return "loginSuccess";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -99,6 +99,6 @@
|
|||||||
</pluginRepositories>
|
</pluginRepositories>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
<spring-boot.version>2.2.0.M3</spring-boot.version>
|
<spring-boot.version>2.2.0.RELEASE</spring-boot.version>
|
||||||
</properties>
|
</properties>
|
||||||
</project>
|
</project>
|
||||||
|
@ -25,6 +25,6 @@ public class ClientConfiguration {
|
|||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
RSocketRequester rSocketRequester(RSocketStrategies rSocketStrategies) {
|
RSocketRequester rSocketRequester(RSocketStrategies rSocketStrategies) {
|
||||||
return RSocketRequester.wrap(rSocket(), MimeTypeUtils.APPLICATION_JSON, rSocketStrategies);
|
return RSocketRequester.wrap(rSocket(), MimeTypeUtils.APPLICATION_JSON, MimeTypeUtils.APPLICATION_JSON, rSocketStrategies);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,7 +13,6 @@ import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest;
|
|||||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||||
import org.springframework.messaging.rsocket.RSocketRequester;
|
import org.springframework.messaging.rsocket.RSocketRequester;
|
||||||
import org.springframework.messaging.rsocket.RSocketRequester.RequestSpec;
|
import org.springframework.messaging.rsocket.RSocketRequester.RequestSpec;
|
||||||
import org.springframework.messaging.rsocket.RSocketRequester.ResponseSpec;
|
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
import org.springframework.test.web.reactive.server.FluxExchangeResult;
|
import org.springframework.test.web.reactive.server.FluxExchangeResult;
|
||||||
import org.springframework.test.web.reactive.server.WebTestClient;
|
import org.springframework.test.web.reactive.server.WebTestClient;
|
||||||
@ -34,15 +33,12 @@ public class MarketDataRestControllerIntegrationTest {
|
|||||||
@Mock
|
@Mock
|
||||||
private RequestSpec requestSpec;
|
private RequestSpec requestSpec;
|
||||||
|
|
||||||
@Mock
|
|
||||||
private ResponseSpec responseSpec;
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void whenInitiatesRequest_ThenGetsResponse() throws Exception {
|
public void whenInitiatesRequest_ThenGetsResponse() throws Exception {
|
||||||
when(rSocketRequester.route("currentMarketData")).thenReturn(requestSpec);
|
when(rSocketRequester.route("currentMarketData")).thenReturn(requestSpec);
|
||||||
when(requestSpec.data(any())).thenReturn(responseSpec);
|
when(requestSpec.data(any())).thenReturn(requestSpec);
|
||||||
MarketData marketData = new MarketData("X", 1);
|
MarketData marketData = new MarketData("X", 1);
|
||||||
when(responseSpec.retrieveMono(MarketData.class)).thenReturn(Mono.just(marketData));
|
when(requestSpec.retrieveMono(MarketData.class)).thenReturn(Mono.just(marketData));
|
||||||
|
|
||||||
testClient.get()
|
testClient.get()
|
||||||
.uri("/current/{stock}", "X")
|
.uri("/current/{stock}", "X")
|
||||||
@ -56,8 +52,8 @@ public class MarketDataRestControllerIntegrationTest {
|
|||||||
@Test
|
@Test
|
||||||
public void whenInitiatesFireAndForget_ThenGetsNoResponse() throws Exception {
|
public void whenInitiatesFireAndForget_ThenGetsNoResponse() throws Exception {
|
||||||
when(rSocketRequester.route("collectMarketData")).thenReturn(requestSpec);
|
when(rSocketRequester.route("collectMarketData")).thenReturn(requestSpec);
|
||||||
when(requestSpec.data(any())).thenReturn(responseSpec);
|
when(requestSpec.data(any())).thenReturn(requestSpec);
|
||||||
when(responseSpec.send()).thenReturn(Mono.empty());
|
when(requestSpec.send()).thenReturn(Mono.empty());
|
||||||
|
|
||||||
testClient.get()
|
testClient.get()
|
||||||
.uri("/collect")
|
.uri("/collect")
|
||||||
@ -70,10 +66,10 @@ public class MarketDataRestControllerIntegrationTest {
|
|||||||
@Test
|
@Test
|
||||||
public void whenInitiatesRequest_ThenGetsStream() throws Exception {
|
public void whenInitiatesRequest_ThenGetsStream() throws Exception {
|
||||||
when(rSocketRequester.route("feedMarketData")).thenReturn(requestSpec);
|
when(rSocketRequester.route("feedMarketData")).thenReturn(requestSpec);
|
||||||
when(requestSpec.data(any())).thenReturn(responseSpec);
|
when(requestSpec.data(any())).thenReturn(requestSpec);
|
||||||
MarketData firstMarketData = new MarketData("X", 1);
|
MarketData firstMarketData = new MarketData("X", 1);
|
||||||
MarketData secondMarketData = new MarketData("X", 2);
|
MarketData secondMarketData = new MarketData("X", 2);
|
||||||
when(responseSpec.retrieveFlux(MarketData.class)).thenReturn(Flux.just(firstMarketData, secondMarketData));
|
when(requestSpec.retrieveFlux(MarketData.class)).thenReturn(Flux.just(firstMarketData, secondMarketData));
|
||||||
|
|
||||||
FluxExchangeResult<MarketData> result = testClient.get()
|
FluxExchangeResult<MarketData> result = testClient.get()
|
||||||
.uri("/feed/{stock}", "X")
|
.uri("/feed/{stock}", "X")
|
||||||
@ -89,4 +85,4 @@ public class MarketDataRestControllerIntegrationTest {
|
|||||||
.thenCancel()
|
.thenCancel()
|
||||||
.verify();
|
.verify();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user