corrected test for bean-friendly modifiables
+/*
+ Copyright 2017 Immutables Authors and Contributors
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ */
package org.immutables.fixture.modifiable;
+import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
-import java.beans.BeanInfo;
import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
import org.junit.Test;
import static org.immutables.check.Checkers.check;
@@ -14,11 +30,16 @@ public class BeanFriendlyTest {
public void modifiableAsJavaBean() throws Exception {
ImmutableSet<String> rwProperties = ImmutableSet.of("primary", "id", "description", "names", "options");
- BeanInfo beanInfo = Introspector.getBeanInfo(ModifiableBeanFriendly.class);
+ FluentIterable<PropertyDescriptor> propertyDescriptors =
+ FluentIterable.of(
+ Introspector.getBeanInfo(ModifiableBeanFriendly.class)
+ .getPropertyDescriptors());
- for (java.beans.PropertyDescriptor pd : beanInfo.getPropertyDescriptors()) {
- if (rwProperties.contains(pd.getName())) {
+ check(propertyDescriptors.transform(p -> p.getName()).toSet().containsAll(rwProperties));
+
+ for (PropertyDescriptor pd : propertyDescriptors) {
check(pd.getReadMethod()).notNull();
+ if (rwProperties.contains(pd.getName())) {
check(pd.getWriteMethod()).notNull();
}
}
