test_class.declarator: thrown = ExpectedException.none()
test_class.modifier: @Rule
      public
test_class.original_string: @Rule
      public ExpectedException thrown = ExpectedException.none();
test_class.type: ExpectedException
test_class.var_name: thrown
test_class.declarator: applicationContext
test_class.modifier: private
test_class.original_string: private ApplicationContext  applicationContext;
test_class.type: ApplicationContext
test_class.var_name: applicationContext
test_class.declarator: parameter
test_class.modifier: private
test_class.original_string: private Parameter           parameter;
test_class.type: Parameter
test_class.var_name: parameter
test_class.declarator: propertyResolver
test_class.modifier: private
test_class.original_string: private PropertyResolver propertyResolver;
test_class.type: PropertyResolver
test_class.var_name: propertyResolver
test_class.file: everrest-core/src/test/java/org/everrest/core/impl/method/PropertyResolverTest.java
test_class.identifier: PropertyResolverTest
test_case.body: @Test
      public void retrievesDefaultValueWhenPropertyDoesNotPresentInApplicationContext() throws Exception {
          when(applicationContext.getInitialProperties().getProperties()).thenReturn(emptyMap());
          when(parameter.getDefaultValue()).thenReturn("default");
  
          Object resolvedHeader = propertyResolver.resolve(parameter, applicationContext);
  
          assertEquals("default", resolvedHeader);
      }
test_case.class_method_signature: PropertyResolverTest.retrievesDefaultValueWhenPropertyDoesNotPresentInApplicationContext()
test_case.full_signature: @Test public void retrievesDefaultValueWhenPropertyDoesNotPresentInApplicationContext()
test_case.identifier: retrievesDefaultValueWhenPropertyDoesNotPresentInApplicationContext
test_case.invocations: thenReturn when getProperties getInitialProperties emptyMap thenReturn when getDefaultValue resolve assertEquals
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void retrievesDefaultValueWhenPropertyDoesNotPresentInApplicationContext()
focal_class.declarator: property
focal_class.modifier: private final
focal_class.original_string: private final Property property;
focal_class.type: Property
focal_class.var_name: property
focal_class.file: everrest-core/src/main/java/org/everrest/core/impl/method/PropertyResolver.java
focal_class.identifier: PropertyResolver
focal_class.interfaces: implements ParameterResolver<Property>
focal_class.class_method_signature: PropertyResolver.PropertyResolver(Property property)
focal_class.full_signature:   PropertyResolver(Property property)
focal_class.identifier: PropertyResolver
focal_class.parameters: (Property property)
focal_class.signature:  PropertyResolver(Property property)
focal_class.class_method_signature: PropertyResolver.resolve(Parameter parameter, ApplicationContext context)
focal_class.full_signature: @Override public Object resolve(Parameter parameter, ApplicationContext context)
focal_class.identifier: resolve
focal_class.modifiers: @Override public
focal_class.parameters: (Parameter parameter, ApplicationContext context)
focal_class.return: Object
focal_class.signature: Object resolve(Parameter parameter, ApplicationContext context)
focal_method.body: @Override
      public Object resolve(Parameter parameter, ApplicationContext context) throws Exception {
          if (parameter.getParameterClass() != String.class) {
              throw new IllegalArgumentException("Only parameters and fields with string type may be annotated by @Property.");
          }
          String param = this.property.value();
  
          Object value = context.getInitialProperties().getProperties().get(param);
          if (value == null) {
              return parameter.getDefaultValue();
          }
  
          return value;
      }
focal_method.class_method_signature: PropertyResolver.resolve(Parameter parameter, ApplicationContext context)
focal_method.full_signature: @Override public Object resolve(Parameter parameter, ApplicationContext context)
focal_method.identifier: resolve
focal_method.invocations: getParameterClass value get getProperties getInitialProperties getDefaultValue
focal_method.modifiers: @Override public
focal_method.parameters: (Parameter parameter, ApplicationContext context)
focal_method.return: Object
focal_method.signature: Object resolve(Parameter parameter, ApplicationContext context)