mirror of
https://github.com/foss42/apidash.git
synced 2025-06-04 17:37:05 +08:00
test: environment models
This commit is contained in:
145
test/models/environment_models.dart
Normal file
145
test/models/environment_models.dart
Normal file
@ -0,0 +1,145 @@
|
||||
import 'package:apidash/consts.dart';
|
||||
import 'package:apidash/models/models.dart'
|
||||
show
|
||||
EnvironmentModel,
|
||||
EnvironmentVariableModel,
|
||||
EnvironmentVariableSuggestion;
|
||||
|
||||
/// Global environment model
|
||||
const globalEnvironment = EnvironmentModel(
|
||||
id: kGlobalEnvironmentId,
|
||||
name: 'Global',
|
||||
values: [
|
||||
EnvironmentVariableModel(
|
||||
key: 'key1',
|
||||
value: 'value1',
|
||||
enabled: true,
|
||||
),
|
||||
EnvironmentVariableModel(
|
||||
key: 'key2',
|
||||
value: 'value2',
|
||||
enabled: false,
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
/// Basic Environment model with 2 variables
|
||||
const environmentModel1 = EnvironmentModel(
|
||||
id: 'environmentId',
|
||||
name: 'Development',
|
||||
values: [
|
||||
EnvironmentVariableModel(
|
||||
key: 'key1',
|
||||
value: 'value1',
|
||||
type: EnvironmentVariableType.variable,
|
||||
enabled: true,
|
||||
),
|
||||
EnvironmentVariableModel(
|
||||
key: 'key2',
|
||||
value: 'value2',
|
||||
type: EnvironmentVariableType.variable,
|
||||
enabled: false,
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
/// Basic Environment model with 2 secrets
|
||||
const environmentModel2 = EnvironmentModel(
|
||||
id: 'environmentId',
|
||||
name: 'Development',
|
||||
values: [
|
||||
EnvironmentVariableModel(
|
||||
key: 'key1',
|
||||
value: 'value1',
|
||||
type: EnvironmentVariableType.secret,
|
||||
enabled: true,
|
||||
),
|
||||
EnvironmentVariableModel(
|
||||
key: 'key2',
|
||||
value: 'value2',
|
||||
type: EnvironmentVariableType.secret,
|
||||
enabled: false,
|
||||
),
|
||||
],
|
||||
);
|
||||
|
||||
/// Basic Environment Variable
|
||||
const environmentVariableModel1 = EnvironmentVariableModel(
|
||||
key: 'key1',
|
||||
value: 'value1',
|
||||
type: EnvironmentVariableType.variable,
|
||||
enabled: true,
|
||||
);
|
||||
|
||||
/// Secret Environment Variable
|
||||
const environmentVariableModel2 = EnvironmentVariableModel(
|
||||
key: 'key1',
|
||||
value: 'value1',
|
||||
type: EnvironmentVariableType.secret,
|
||||
enabled: true,
|
||||
);
|
||||
|
||||
/// Basic Environment Variable Suggestion
|
||||
const environmentVariableSuggestion1 = EnvironmentVariableSuggestion(
|
||||
environmentId: 'environmentId',
|
||||
variable: environmentVariableModel1,
|
||||
);
|
||||
|
||||
/// Secret Environment Variable Suggestion
|
||||
const environmentVariableSuggestion2 = EnvironmentVariableSuggestion(
|
||||
environmentId: 'environmentId',
|
||||
variable: environmentVariableModel2,
|
||||
);
|
||||
|
||||
/// JSONs
|
||||
const environmentModel1Json = {
|
||||
'id': 'environmentId',
|
||||
'name': 'Development',
|
||||
'values': [
|
||||
{
|
||||
'key': 'key1',
|
||||
'value': 'value1',
|
||||
'type': 'variable',
|
||||
'enabled': true,
|
||||
},
|
||||
{
|
||||
'key': 'key2',
|
||||
'value': 'value2',
|
||||
'type': 'variable',
|
||||
'enabled': false,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const environmentModel2Json = {
|
||||
'id': 'environmentId',
|
||||
'name': 'Development',
|
||||
'values': [
|
||||
{
|
||||
'key': 'key',
|
||||
'value': 'value1',
|
||||
'type': 'secret',
|
||||
'enabled': true,
|
||||
},
|
||||
{
|
||||
'key': 'key2',
|
||||
'value': 'value2',
|
||||
'type': 'secret',
|
||||
'enabled': false,
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const environmentVariableModel1Json = {
|
||||
'key': 'key1',
|
||||
'value': 'value1',
|
||||
'type': 'variable',
|
||||
'enabled': true,
|
||||
};
|
||||
|
||||
const environmentVariableModel2Json = {
|
||||
'key': 'key1',
|
||||
'value': 'value1',
|
||||
'type': 'secret',
|
||||
'enabled': true,
|
||||
};
|
173
test/models/environment_models_test.dart
Normal file
173
test/models/environment_models_test.dart
Normal file
@ -0,0 +1,173 @@
|
||||
import 'package:test/test.dart';
|
||||
import 'package:apidash/models/models.dart';
|
||||
import 'package:apidash/consts.dart';
|
||||
|
||||
import 'environment_models.dart';
|
||||
|
||||
void main() {
|
||||
group("Testing EnvironmentModel", () {
|
||||
test("Testing EnvironmentModel copyWith", () {
|
||||
var environmentModel = environmentModel1;
|
||||
final environmentModelcopyWith =
|
||||
environmentModel.copyWith(name: 'Production');
|
||||
expect(environmentModelcopyWith.name, 'Production');
|
||||
// original model unchanged
|
||||
expect(environmentModel.name, 'Development');
|
||||
});
|
||||
|
||||
test("Testing EnvironmentModel toJson", () {
|
||||
var environmentModel = environmentModel1;
|
||||
expect(environmentModel.toJson(), environmentModel1Json);
|
||||
});
|
||||
|
||||
test("Testing EnvironmentModel fromJson", () {
|
||||
var environmentModel = environmentModel1;
|
||||
final modelFromJson = EnvironmentModel.fromJson(environmentModel1Json);
|
||||
expect(modelFromJson, environmentModel);
|
||||
expect(modelFromJson.values, const [
|
||||
EnvironmentVariableModel(
|
||||
key: 'key1',
|
||||
value: 'value1',
|
||||
type: EnvironmentVariableType.variable,
|
||||
enabled: true,
|
||||
),
|
||||
EnvironmentVariableModel(
|
||||
key: 'key2',
|
||||
value: 'value2',
|
||||
type: EnvironmentVariableType.variable,
|
||||
enabled: false,
|
||||
),
|
||||
]);
|
||||
});
|
||||
|
||||
test("Testing EnvironmentModel getters", () {
|
||||
var environmentModel = environmentModel1;
|
||||
expect(environmentModel.values, const [
|
||||
EnvironmentVariableModel(
|
||||
key: 'key1',
|
||||
value: 'value1',
|
||||
type: EnvironmentVariableType.variable,
|
||||
enabled: true,
|
||||
),
|
||||
EnvironmentVariableModel(
|
||||
key: 'key2',
|
||||
value: 'value2',
|
||||
type: EnvironmentVariableType.variable,
|
||||
enabled: false,
|
||||
),
|
||||
]);
|
||||
expect(environmentModel.name, 'Development');
|
||||
expect(environmentModel.id, 'environmentId');
|
||||
});
|
||||
|
||||
test("Testing EnvironmentModel immutability", () {
|
||||
var testEnvironmentModel = environmentModel1;
|
||||
final testEnvironmentModel2 =
|
||||
testEnvironmentModel.copyWith(values: testEnvironmentModel.values);
|
||||
expect(testEnvironmentModel2.values, testEnvironmentModel.values);
|
||||
|
||||
expect(
|
||||
identical(testEnvironmentModel.values, testEnvironmentModel2.values),
|
||||
false);
|
||||
var testEnvironmentModel3 = testEnvironmentModel.copyWith(values: []);
|
||||
expect(testEnvironmentModel3.values, []);
|
||||
});
|
||||
});
|
||||
|
||||
group("Testing EnvironmentVariableModel", () {
|
||||
test("Testing EnvironmentVariableModel copyWith", () {
|
||||
var environmentVariableModel = environmentVariableModel1;
|
||||
final environmentVariableModelcopyWith = environmentVariableModel
|
||||
.copyWith(key: 'key3', value: 'value3', enabled: false);
|
||||
expect(environmentVariableModelcopyWith.key, 'key3');
|
||||
expect(environmentVariableModelcopyWith.value, 'value3');
|
||||
expect(environmentVariableModelcopyWith.enabled, false);
|
||||
// original model unchanged
|
||||
expect(environmentVariableModel.key, 'key1');
|
||||
expect(environmentVariableModel.value, 'value1');
|
||||
expect(environmentVariableModel.enabled, true);
|
||||
});
|
||||
|
||||
test("Testing EnvironmentVariableModel toJson", () {
|
||||
var environmentVariable = environmentVariableModel1;
|
||||
expect(environmentVariable.toJson(), environmentVariableModel1Json);
|
||||
|
||||
var environmentSecret = environmentVariableModel2;
|
||||
expect(environmentSecret.toJson(), environmentVariableModel2Json);
|
||||
});
|
||||
|
||||
test("Testing EnvironmentVariableModel fromJson", () {
|
||||
var environmentVariableModel = environmentVariableModel1;
|
||||
final modelFromJson =
|
||||
EnvironmentVariableModel.fromJson(environmentVariableModel1Json);
|
||||
expect(modelFromJson, environmentVariableModel);
|
||||
});
|
||||
|
||||
test("Testing EnvironmentVariableModel getters", () {
|
||||
var environmentVariableModel = environmentVariableModel1;
|
||||
expect(environmentVariableModel.key, 'key1');
|
||||
expect(environmentVariableModel.value, 'value1');
|
||||
expect(environmentVariableModel.enabled, true);
|
||||
});
|
||||
|
||||
test("Testing EnvironmentVariableModel immutability", () {
|
||||
var testEnvironmentVariableModel = environmentVariableModel1;
|
||||
final testEnvironmentVariableModel2 =
|
||||
testEnvironmentVariableModel.copyWith(key: 'key2');
|
||||
expect(testEnvironmentVariableModel2.key, 'key2');
|
||||
expect(testEnvironmentVariableModel2.value, 'value1');
|
||||
expect(testEnvironmentVariableModel2.enabled, true);
|
||||
|
||||
expect(
|
||||
identical(
|
||||
testEnvironmentVariableModel, testEnvironmentVariableModel2),
|
||||
false);
|
||||
});
|
||||
});
|
||||
|
||||
group("Testing EnvironmentVariableSuggestionModel", () {
|
||||
test("Testing EnvironmentVariableSuggestionModel copyWith", () {
|
||||
var environmentVariableSuggestionModel = environmentVariableSuggestion1;
|
||||
final environmentVariableSuggestionModelcopyWith =
|
||||
environmentVariableSuggestionModel.copyWith(
|
||||
environmentId: 'environmentId2',
|
||||
variable: environmentVariableModel2,
|
||||
isUnknown: true);
|
||||
expect(environmentVariableSuggestionModelcopyWith.environmentId,
|
||||
'environmentId2');
|
||||
expect(environmentVariableSuggestionModelcopyWith.variable,
|
||||
environmentVariableModel2);
|
||||
expect(environmentVariableSuggestionModelcopyWith.isUnknown, true);
|
||||
// original model unchanged
|
||||
expect(environmentVariableSuggestionModel.environmentId, 'environmentId');
|
||||
expect(environmentVariableSuggestionModel.variable,
|
||||
environmentVariableModel1);
|
||||
expect(environmentVariableSuggestionModel.isUnknown, false);
|
||||
});
|
||||
|
||||
test("Testing EnvironmentVariableSuggestionModel immutability", () {
|
||||
var testEnvironmentVariableSuggestionModel =
|
||||
environmentVariableSuggestion1;
|
||||
final testEnvironmentVariableSuggestionModel2 =
|
||||
testEnvironmentVariableSuggestionModel.copyWith(
|
||||
environmentId: 'environmentId2',
|
||||
variable: environmentVariableModel2,
|
||||
isUnknown: true);
|
||||
expect(testEnvironmentVariableSuggestionModel2.environmentId,
|
||||
'environmentId2');
|
||||
expect(testEnvironmentVariableSuggestionModel2.variable,
|
||||
environmentVariableModel2);
|
||||
expect(testEnvironmentVariableSuggestionModel2.isUnknown, true);
|
||||
|
||||
expect(
|
||||
identical(testEnvironmentVariableSuggestionModel,
|
||||
testEnvironmentVariableSuggestionModel2),
|
||||
false);
|
||||
});
|
||||
|
||||
test("Testing EnvironmentVariableSuggestionModel hashCode", () {
|
||||
var environmentVariableSuggestionModel = environmentVariableSuggestion1;
|
||||
expect(environmentVariableSuggestionModel.hashCode, greaterThan(0));
|
||||
});
|
||||
});
|
||||
}
|
Reference in New Issue
Block a user