getValueUnitTest method

String getValueUnitTest(
  1. String key,
  2. dynamic value,
  3. String suffix,
  4. String parent,
  5. String asImport, [
  6. String? parentList,
])

Implementation

String getValueUnitTest(
  String key,
  dynamic value,
  String suffix,
  String parent,
  String asImport, [
  String? parentList,
]) {
  final variable = key.camelCase;
  if (value is Map) {
    final apiClassName = ModelClassNameHelper.getClassName(
      listClassNameUnitTest,
      suffix,
      key.pascalCase,
      false,
      true,
      parent,
      parentList,
    );

    List<String> children = [];

    value.forEach((key, child) {
      if (child is Map) {
        children.add(getValueUnitTest(key.toString(), child, suffix,
            apiClassName, asImport, parentList));
      }
    });
    value.forEach((key, child) {
      if (child is List) {
        children.add(getValueUnitTest(key.toString(), child, suffix,
            apiClassName, asImport, parentList));
      }
    });
    value.forEach((key, child) {
      if (child is! List && child is! Map) {
        children.add(getValueUnitTest(key.toString(), child, suffix,
            apiClassName, asImport, parentList));
      }
    });
    return '$variable: $asImport.$apiClassName(${children.join(',')})';
  }
  if (value is List) {
    if (value.isNotEmpty) {
      if (value.first is Map) {
        String list = '[';
        final apiClassName = ModelClassNameHelper.getClassName(
          listClassNameUnitTest,
          suffix,
          key.pascalCase,
          false,
          true,
          parent,
          parentList != null ? parentList + parent : parent,
        );

        final parentOfChild =
            parentList != null ? parentList + apiClassName : apiClassName;

        for (var element in value) {
          List<String> children = [];

          final value = element as Map;

          value.forEach((key, child) {
            if (child is Map) {
              children.add(getValueUnitTest(key.toString(), child, suffix,
                  apiClassName, asImport, parentOfChild));
            }
          });
          value.forEach((key, child) {
            if (child is List) {
              children.add(getValueUnitTest(key.toString(), child, suffix,
                  apiClassName, asImport, parentOfChild));
            }
          });
          value.forEach((key, child) {
            if (child is! List && child is! Map) {
              children.add(getValueUnitTest(key.toString(), child, suffix,
                  apiClassName, asImport, parentOfChild));
            }
          });

          list += '$asImport.$apiClassName(${children.join(',')}),';
        }
        list += ']';
        return '$variable: $list';
      } else if (value.first is String) {
        return '$variable: [${value.map((e) => "'$e'").join(',')}]';
      } else {
        return '$variable: [${value.join(',')}]';
      }
    } else {
      return '$variable: []';
    }
  }
  if (value is String) {
    if (RegExp(r'^\d{4}-\d{2}-\d{2}(\s|T)?(\d{2}:\d{2}(:\d{2})?)?(\.\d+)?Z?$')
        .hasMatch(value)) {
      return '$variable: ${"DateTime.tryParse('$value')"}';
    }
    return "$variable: '$value'";
  }
  return '$variable: ${value.toString()}';
}