You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AFPResourceAccessorTestCase.java 3.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements. See the NOTICE file distributed with
  4. * this work for additional information regarding copyright ownership.
  5. * The ASF licenses this file to You under the Apache License, Version 2.0
  6. * (the "License"); you may not use this file except in compliance with
  7. * the License. You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. package org.apache.fop.afp.util;
  18. import java.io.IOException;
  19. import java.net.URI;
  20. import java.net.URISyntaxException;
  21. import org.junit.Before;
  22. import org.junit.Test;
  23. import static org.junit.Assert.assertEquals;
  24. import static org.mockito.Mockito.mock;
  25. import static org.mockito.Mockito.verify;
  26. import org.apache.fop.apps.io.InternalResourceResolver;
  27. public class AFPResourceAccessorTestCase {
  28. private InternalResourceResolver nullBaseResourceResolver;
  29. private InternalResourceResolver absoluteBaseResourceResolver;
  30. private InternalResourceResolver relativeBaseResourceResolver;
  31. private final URI absoluteBaseURI = URI.create("this:///purely.for.testing");
  32. private final URI relativeBaseURI = URI.create("./this.is.purely.for.testing");
  33. private AFPResourceAccessor nullBaseURISut;
  34. private AFPResourceAccessor absoluteBaseURISut;
  35. private AFPResourceAccessor relativeBaseURISut;
  36. @Before
  37. public void setUp() {
  38. nullBaseResourceResolver = mock(InternalResourceResolver.class);
  39. absoluteBaseResourceResolver = mock(InternalResourceResolver.class);
  40. relativeBaseResourceResolver = mock(InternalResourceResolver.class);
  41. nullBaseURISut = new AFPResourceAccessor(nullBaseResourceResolver);
  42. absoluteBaseURISut = new AFPResourceAccessor(absoluteBaseResourceResolver,
  43. absoluteBaseURI.toASCIIString());
  44. relativeBaseURISut = new AFPResourceAccessor(relativeBaseResourceResolver,
  45. relativeBaseURI.toASCIIString());
  46. }
  47. @Test
  48. public void testCreateInputStream() throws IOException, URISyntaxException {
  49. URI testURI = URI.create("test");
  50. nullBaseURISut.createInputStream(testURI);
  51. verify(nullBaseResourceResolver).getResource(testURI);
  52. absoluteBaseURISut.createInputStream(testURI);
  53. verify(absoluteBaseResourceResolver).getResource(getActualURI(absoluteBaseURI, testURI));
  54. relativeBaseURISut.createInputStream(testURI);
  55. verify(relativeBaseResourceResolver).getResource(getActualURI(relativeBaseURI, testURI));
  56. }
  57. private URI getActualURI(URI baseURI, URI testURI) throws URISyntaxException {
  58. return InternalResourceResolver.getBaseURI(baseURI.toASCIIString()).resolve(testURI);
  59. }
  60. @Test
  61. public void testResolveURI() throws URISyntaxException {
  62. String testURI = "anotherTestURI";
  63. assertEquals(URI.create("./" + testURI), nullBaseURISut.resolveURI(testURI));
  64. assertEquals(getActualURI(absoluteBaseURI, URI.create(testURI)),
  65. absoluteBaseURISut.resolveURI(testURI));
  66. assertEquals(getActualURI(relativeBaseURI, URI.create(testURI)),
  67. relativeBaseURISut.resolveURI(testURI));
  68. }
  69. }