This repository has been archived by the owner on Jun 6, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
/
Copy pathJsonTest.java
72 lines (65 loc) · 2.79 KB
/
JsonTest.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
package com.theokanning.openai;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.*;
import com.theokanning.openai.audio.TranscriptionResult;
import com.theokanning.openai.audio.TranslationResult;
import com.theokanning.openai.completion.chat.ChatCompletionRequest;
import com.theokanning.openai.completion.chat.ChatCompletionResult;
import com.theokanning.openai.edit.EditRequest;
import com.theokanning.openai.edit.EditResult;
import com.theokanning.openai.embedding.EmbeddingRequest;
import com.theokanning.openai.embedding.EmbeddingResult;
import com.theokanning.openai.engine.Engine;
import com.theokanning.openai.file.File;
import com.theokanning.openai.fine_tuning.FineTuningEvent;
import com.theokanning.openai.fine_tuning.FineTuningJob;
import com.theokanning.openai.fine_tuning.FineTuningJobRequest;
import com.theokanning.openai.finetune.FineTuneEvent;
import com.theokanning.openai.finetune.FineTuneResult;
import com.theokanning.openai.image.ImageResult;
import com.theokanning.openai.messages.Message;
import com.theokanning.openai.model.Model;
import com.theokanning.openai.moderation.ModerationRequest;
import com.theokanning.openai.moderation.ModerationResult;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import static org.junit.jupiter.api.Assertions.*;
public class JsonTest {
@ParameterizedTest
@ValueSource(classes = {
ChatCompletionRequest.class,
ChatCompletionResult.class,
DeleteResult.class,
EditRequest.class,
EditResult.class,
EmbeddingRequest.class,
EmbeddingResult.class,
Engine.class,
File.class,
FineTuneEvent.class,
FineTuneResult.class,
FineTuningEvent.class,
FineTuningJob.class,
FineTuningJobRequest.class,
ImageResult.class,
TranscriptionResult.class,
TranslationResult.class,
Message.class,
Model.class,
ModerationRequest.class,
ModerationResult.class
})
void objectMatchesJson(Class<?> clazz) throws IOException {
ObjectMapper mapper = new ObjectMapper();
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
String path = "src/test/resources/fixtures/" + clazz.getSimpleName() + ".json";
byte[] bytes = Files.readAllBytes(Paths.get(path));
String json = new String(bytes);
String actual = mapper.writeValueAsString(mapper.readValue(json, clazz));
// Convert to JsonNodes to avoid any json formatting differences
assertEquals(mapper.readTree(json), mapper.readTree(actual));
}
}