( t *testing.T, filename string, expectedData []byte, expectedFormat string, expectedCompressionType internal.CompressionType, )
| 94 | } |
| 95 | |
| 96 | func testRoundTripLocalFile( |
| 97 | t *testing.T, |
| 98 | filename string, |
| 99 | expectedData []byte, |
| 100 | expectedFormat string, |
| 101 | expectedCompressionType internal.CompressionType, |
| 102 | ) { |
| 103 | logger := slogtestext.NewLogger(t) |
| 104 | refParser := newRefParser(logger) |
| 105 | reader := testNewFetchReader(logger) |
| 106 | writer := testNewFetchWriter(logger) |
| 107 | |
| 108 | ctx := t.Context() |
| 109 | container := app.NewContainer(nil, nil, nil, nil) |
| 110 | |
| 111 | tmpDir := t.TempDir() |
| 112 | filePath := filepath.Join(tmpDir, filename) |
| 113 | |
| 114 | parsedRef, err := refParser.getParsedRef(ctx, filePath, allFormats) |
| 115 | require.NoError(t, err) |
| 116 | require.Equal(t, expectedFormat, parsedRef.Format()) |
| 117 | fileRef, ok := parsedRef.(internal.FileRef) |
| 118 | require.True(t, ok) |
| 119 | require.Equal(t, expectedCompressionType, fileRef.CompressionType()) |
| 120 | |
| 121 | writeCloser, err := writer.PutFile(ctx, container, fileRef) |
| 122 | require.NoError(t, err) |
| 123 | _, err = writeCloser.Write(expectedData) |
| 124 | require.NoError(t, err) |
| 125 | require.NoError(t, writeCloser.Close()) |
| 126 | |
| 127 | readCloser, err := reader.GetFile(ctx, container, fileRef) |
| 128 | require.NoError(t, err) |
| 129 | actualData, err := io.ReadAll(readCloser) |
| 130 | require.NoError(t, err) |
| 131 | require.NoError(t, readCloser.Close()) |
| 132 | |
| 133 | require.Equal(t, string(expectedData), string(actualData)) |
| 134 | } |
| 135 | |
| 136 | func testNewFetchReader(logger *slog.Logger) internal.Reader { |
| 137 | storageosProvider := storageos.NewProvider(storageos.ProviderWithSymlinks()) |
no test coverage detected
searching dependent graphs…