blob: 8ff27838eeed2db659fef7fc13e060cfee907a48 [file] [log] [blame]
// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/dart/analysis/declared_variables.dart';
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/dart/element/type_provider.dart';
import 'package:analyzer/src/dart/constant/from_environment_evaluator.dart';
import 'package:analyzer/src/dart/element/type_system.dart';
import 'package:analyzer/src/generated/constant.dart';
import 'package:test/test.dart';
import 'package:test_reflective_loader/test_reflective_loader.dart';
import '../../generated/test_analysis_context.dart';
void main() {
defineReflectiveSuite(() {
defineReflectiveTests(FromEnvironmentEvaluatorTest);
});
}
@reflectiveTest
class FromEnvironmentEvaluatorTest {
TypeProvider typeProvider;
TypeSystemImpl typeSystem;
void setUp() {
var analysisContext = TestAnalysisContext();
typeProvider = analysisContext.typeProviderLegacy;
typeSystem = analysisContext.typeSystemLegacy;
}
@deprecated
void test_getBool_false() {
String variableName = "var";
var variables = FromEnvironmentEvaluator(
typeSystem,
DeclaredVariables.fromMap({variableName: 'false'}),
);
DartObject object = variables.getBool(variableName);
expect(object, isNotNull);
expect(object.toBoolValue(), false);
}
@deprecated
void test_getBool_invalid() {
String variableName = "var";
var variables = FromEnvironmentEvaluator(
typeSystem,
DeclaredVariables.fromMap({variableName: 'not true'}),
);
_assertNullDartObject(
variables.getBool(variableName),
);
}
@deprecated
void test_getBool_true() {
String variableName = "var";
var variables = FromEnvironmentEvaluator(
typeSystem,
DeclaredVariables.fromMap({variableName: 'true'}),
);
DartObject object = variables.getBool(variableName);
expect(object, isNotNull);
expect(object.toBoolValue(), true);
}
@deprecated
void test_getBool_undefined() {
String variableName = "var";
var variables = FromEnvironmentEvaluator(
typeSystem,
DeclaredVariables(),
);
_assertUnknownDartObject(
typeProvider.boolType,
variables.getBool(variableName),
);
}
@deprecated
void test_getInt_invalid() {
String variableName = "var";
var variables = FromEnvironmentEvaluator(
typeSystem,
DeclaredVariables.fromMap({variableName: 'four score and seven years'}),
);
_assertNullDartObject(
variables.getInt(variableName),
);
}
@deprecated
void test_getInt_undefined() {
String variableName = "var";
var variables = FromEnvironmentEvaluator(
typeSystem,
DeclaredVariables(),
);
_assertUnknownDartObject(
typeProvider.intType,
variables.getInt(variableName),
);
}
@deprecated
void test_getInt_valid() {
String variableName = "var";
var variables = FromEnvironmentEvaluator(
typeSystem,
DeclaredVariables.fromMap({variableName: '23'}),
);
DartObject object = variables.getInt(variableName);
expect(object, isNotNull);
expect(object.toIntValue(), 23);
}
@deprecated
void test_getString_defined() {
String variableName = "var";
String value = "value";
var variables = FromEnvironmentEvaluator(
typeSystem,
DeclaredVariables.fromMap({variableName: value}),
);
DartObject object = variables.getString(variableName);
expect(object, isNotNull);
expect(object.toStringValue(), value);
}
@deprecated
void test_getString_undefined() {
String variableName = "var";
var variables = FromEnvironmentEvaluator(
typeSystem,
DeclaredVariables(),
);
_assertUnknownDartObject(
typeProvider.stringType,
variables.getString(variableName),
);
}
void _assertNullDartObject(DartObject result) {
expect(result.type, typeProvider.nullType);
}
void _assertUnknownDartObject(DartType expectedType, DartObject result) {
expect((result as DartObjectImpl).isUnknown, isTrue);
expect(result.type, expectedType);
}
}