我需要添加multiValued字段,它将是结构.就像是:
哪里:
class ComplexPhone [
String area;
String number;
String internal;
String type;
]
Run Code Online (Sandbox Code Playgroud)
我希望以这样的格式从json中的SOLR接收这些数据:
{
"responseHeader": {
"status": 0,
"QTime": 1,
"params": {
"indent": "true",
"q": "*:*",
"_": "1394008742077",
"wt": "json"
}
},
"response": {
"numFound": 1,
"start": 0,
"docs": [
{
"first_name": "Funky",
"last_name": "Koval",
"phone": [
{
"area": "US",
"number": "555-123-456-789",
"internal": "011,
"type": "S",
},
{
"area": "UK",
"number": "1234-5678",
"internal": "9001",
"type": "L",
}
]
"id": 1,
"_version_": 1461724104955527200
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
这只是一个例子(我不想只有电话号码).
对我来说最重要的是SOLR的响应格式.我可以用任何简单的格式添加这些数据,如:Funky,Koval,UK; …
SpringBoot + ApacheCamel 我对 *CamelContext 有问题,但出现异常:
Cannot cast org.apache.camel.spring.SpringCamelContext to org.apache.camel.ExtendedCamelContext
Run Code Online (Sandbox Code Playgroud)
在初始化一些组件时。我的配置部分(pom.xml):
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.2.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
...
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
<version>2.25.2</version>
</dependency>
...
Run Code Online (Sandbox Code Playgroud)
问题:如何使用这些上下文/应该使用哪一个?
CamelContext又名DefaultCamelContextExtendedCamelContextSpringCamelContext先前创建的测试使用DateTimeFormatter.ofPattern("ha");并返回“10AM”(表示“ 2017-04-09T10:00-06:00[US/Mountain]”)。
在我的 MacO 和 Java 下 ['openjdk version "11.0.12"'] 我得到“10am”
"10AM" != "10am"
Run Code Online (Sandbox Code Playgroud)
在规范中,我看到“ha”应该创建“10AM”而不是“10am”,请参阅:https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html
有什么建议吗?
我有返回记录列表的方法。每条记录都有设置为字段。
public class R {
public final Set s;
}
Run Code Online (Sandbox Code Playgroud)
我有所有预期集合的列表 - 例如:
Set<String> set1 = new HashSet<String>(); set1.add("s1");
Set<String> set2 = new HashSet<String>(); set1.add("s2");
Set<String> set3 = new HashSet<String>(); set1.add("s3");
Run Code Online (Sandbox Code Playgroud)
我想使用 AssertJ (版本 3.11.1)以简单的方式验证响应List<R>包含所有定义的 Set 或至少这些集合中所有元素的聚合等于集合中元素的聚合set1, set2, set3
注意:以下解决方案不起作用:
Set allElements = new HashSet<String>();
allElements.addAll(set1);
allElements.addAll(set2);
allElements.addAll(set3);
List<R> result = foo();
org.assertj.core.api.Assertions.assertThat(result)
.extracting(record -> record.s)
.containsOnly(allElements);
Run Code Online (Sandbox Code Playgroud)
我有:
java.lang.AssertionError:
Expecting:
<[["s1.1", "s1.2"],
["s2.1", "s2.2"],
["s3.1", "s3.2"]]>
to contain only:
<[["s1.1",
"s1.2",
"s2.1",
"s2.2",
"s3.1", …Run Code Online (Sandbox Code Playgroud) 我有:
@Test
public void testSomethingInFooFunction() {
//given
Something parameter = new Something();
//when
List<Object> result = foo(parameter);
//then
// not working
assertThat(result).isEmpty().or().containsOnly(something());
assertThat(result).is(v -> v.isEmpty() || v.containsOnly(something());
//is working
assertThat(result.isEmpty() || (
result.contains(something())
&& result.size() == 1)
).isTrue();
}
Run Code Online (Sandbox Code Playgroud)
还有其他测试条件的方法,例如:
result.isEmpty()|| (result.contains(something())&& result.size()== 1)
问:如何使用AssertJ 3.11.1简化它?
java ×3
assertj ×2
testing ×2
apache-camel ×1
json ×1
solr ×1
spring-boot ×1
structure ×1
timeofday ×1
types ×1