• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright 2017, OpenCensus Authors
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 package io.opencensus.contrib.agent;
18 
19 import static com.google.common.truth.Truth.assertThat;
20 import static org.mockito.Mockito.verify;
21 
22 import com.google.common.base.Charsets;
23 import com.google.common.io.Files;
24 import java.io.ByteArrayOutputStream;
25 import java.io.File;
26 import java.io.FileNotFoundException;
27 import java.io.IOException;
28 import java.io.OutputStream;
29 import org.junit.Rule;
30 import org.junit.Test;
31 import org.junit.rules.ExpectedException;
32 import org.junit.runner.RunWith;
33 import org.mockito.Mock;
34 import org.mockito.runners.MockitoJUnitRunner;
35 
36 /** Unit tests for {@link Resources}. */
37 @RunWith(MockitoJUnitRunner.class)
38 public class ResourcesTest {
39 
40   @Rule public final ExpectedException exception = ExpectedException.none();
41 
42   @Mock private File mockFile;
43 
44   @Test
getResourceAsTempFile_deleteOnExit()45   public void getResourceAsTempFile_deleteOnExit() throws IOException {
46     Resources.getResourceAsTempFile("some_resource.txt", mockFile, new ByteArrayOutputStream());
47 
48     verify(mockFile).deleteOnExit();
49   }
50 
51   @Test
getResourceAsTempFile_contents()52   public void getResourceAsTempFile_contents() throws IOException {
53     File file = Resources.getResourceAsTempFile("some_resource.txt");
54 
55     assertThat(Files.toString(file, Charsets.UTF_8)).isEqualTo("A resource!");
56   }
57 
58   @Test
getResourceAsTempFile_empty()59   public void getResourceAsTempFile_empty() throws IOException {
60     exception.expect(IllegalArgumentException.class);
61 
62     Resources.getResourceAsTempFile("");
63   }
64 
65   @Test
getResourceAsTempFile_Missing()66   public void getResourceAsTempFile_Missing() throws IOException {
67     exception.expect(FileNotFoundException.class);
68 
69     Resources.getResourceAsTempFile("missing_resource.txt");
70   }
71 
72   @Test
getResourceAsTempFile_WriteFailure()73   public void getResourceAsTempFile_WriteFailure() throws IOException {
74     OutputStream badOutputStream =
75         new OutputStream() {
76           @Override
77           public void write(int b) throws IOException {
78             throw new IOException("denied");
79           }
80         };
81 
82     exception.expect(IOException.class);
83     exception.expectMessage("denied");
84 
85     Resources.getResourceAsTempFile("some_resource.txt", mockFile, badOutputStream);
86   }
87 }
88