Class BasicJsonTester


  • public class BasicJsonTester
    extends Object
    AssertJ based JSON tester that works with basic JSON strings. Allows testing of JSON payloads created from any source, for example:
     public class ExampleObjectJsonTests {
    
         private BasicJsonTester json = new BasicJsonTester(getClass());
    
         @Test
         public void testWriteJson() throws IOException {
             assertThat(json.from("example.json")).extractingJsonPathStringValue("@.name")
                                    .isEqualTo("Spring");
         }
    
     }
     
    See AbstractJsonMarshalTester for more details.
    Since:
    1.4.0
    • Constructor Detail

      • BasicJsonTester

        public BasicJsonTester​(Class<?> resourceLoadClass)
        Create a new BasicJsonTester instance that will load resources as UTF-8.
        Parameters:
        resourceLoadClass - the source class used to load resources
      • BasicJsonTester

        public BasicJsonTester​(Class<?> resourceLoadClass,
                               Charset charset)
        Create a new BasicJsonTester instance.
        Parameters:
        resourceLoadClass - the source class used to load resources
        charset - the charset used to load resources
        Since:
        1.4.1
    • Method Detail

      • initialize

        protected final void initialize​(Class<?> resourceLoadClass)
        Initialize the marshal tester for use, configuring it to load JSON resources as UTF-8.
        Parameters:
        resourceLoadClass - the source class used when loading relative classpath resources
      • initialize

        protected final void initialize​(Class<?> resourceLoadClass,
                                        Charset charset)
        Initialize the marshal tester for use.
        Parameters:
        resourceLoadClass - the source class used when loading relative classpath resources
        charset - the charset used when loading relative classpath resources
        Since:
        1.4.1
      • from

        public JsonContent<Objectfrom​(CharSequence source)
        Create JSON content from the specified String source. The source can contain the JSON itself or, if it ends with .json, the name of a resource to be loaded using resourceLoadClass.
        Parameters:
        source - the JSON content or a .json resource name
        Returns:
        the JSON content
      • from

        public JsonContent<Objectfrom​(String path,
                                        Class<?> resourceLoadClass)
        Create JSON content from the specified resource path.
        Parameters:
        path - the path of the resource to load
        resourceLoadClass - the source class used to load the resource
        Returns:
        the JSON content
      • from

        public JsonContent<Objectfrom​(byte[] source)
        Create JSON content from the specified JSON bytes.
        Parameters:
        source - the bytes of JSON
        Returns:
        the JSON content
      • from

        public JsonContent<Objectfrom​(File source)
        Create JSON content from the specified JSON file.
        Parameters:
        source - the file containing JSON
        Returns:
        the JSON content
      • from

        public JsonContent<Objectfrom​(InputStream source)
        Create JSON content from the specified JSON input stream.
        Parameters:
        source - the input stream containing JSON
        Returns:
        the JSON content
      • from

        public JsonContent<Objectfrom​(org.springframework.core.io.Resource source)
        Create JSON content from the specified JSON resource.
        Parameters:
        source - the resource containing JSON
        Returns:
        the JSON content