Closed
Description
- ObjectBox version: 1.2.0
- Flutter/Dart SDK: 2.2.3/2.13.4
- Null-safety enabled: yes
- Reproducibility: always in test
- OS: Windows 10
- Device/Emulator: Redmi Note 7
Additionally, you can choose to provide more details, e.g. the output of:
pub deps --no-dev
[√] Flutter (Channel stable, 2.2.3, on Microsoft Windows [Versión 10.0.19043.1165], locale es-US)
• Flutter version 2.2.3 at C:\src\flutter
• Framework revision f4abaa0735 (10 weeks ago), 2021-07-01 12:46:11 -0700
• Engine revision 241c87ad80
• Dart version 2.13.4
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
• Android SDK at E:\Programas\SDK
• Platform android-30, build-tools 30.0.2
• ANDROID_SDK_ROOT = E:\Programas\SDK
• Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
• All Android licenses accepted.
[√] Chrome - develop for the web
• Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe
[√] Visual Studio - develop for Windows (Visual Studio Community 2019 16.9.0)
• Visual Studio at C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
• Visual Studio Community 2019 version 16.9.31025.194
• Windows 10 SDK version 10.0.18362.0
[√] Android Studio (version 4.1.0)
• Android Studio at C:\Program Files\Android\Android Studio
• Flutter plugin can be installed from:
https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b01)
[√] VS Code (version 1.60.0)
• VS Code at C:\Users\Yeikel\AppData\Local\Programs\Microsoft VS Code
• Flutter extension version 3.26.0
[√] Connected device (4 available)
• Redmi Note 7 (mobile) • d97ede0d • android-arm64 • Android 10 (API 29)
• Windows (desktop) • windows • windows-x64 • Microsoft Windows [Versión 10.0.19043.1165]
• Chrome (web) • chrome • web-javascript • Google Chrome 92.0.4515.131
• Edge (web) • edge • web-javascript • Microsoft Edge 93.0.961.38
Steps to reproduce
I'm creating a unit test for a method that returns a Stream<List<Card>>
and the test fails in all the ways I tried.
Code
Stream<List<Card>> getAllCardsStream() {
final _stream = _cardsBox
.query()
.watch(triggerImmediately: true)
.map((query) => query.find());
return _stream;
}
Test:
test('should return a [Stream<List<Card>>]', () async {
final result = <List<Card>>[];
final box = testEnv.box;
cardsDataBase.getAllCardsStream().listen(result.add);
box.put(tCardModel);
await yieldExecution();
expect(result, [
[tCardModel],
]);
});
If applicable, add code to help explain your problem.
- Include your pubspec.yaml.
name: cards_repository
description: A Very Good Project created by Very Good CLI.
version: 1.0.0+1
publish_to: none
environment:
sdk: ">=2.13.0 <3.0.0"
dependencies:
flutter:
sdk: flutter
equatable: ^2.0.3
objectbox: ^1.2.0
objectbox_flutter_libs: any
dev_dependencies:
build_runner: any
objectbox_generator: any
test: ^1.17.0
mocktail: ^0.1.4
very_good_analysis: ^2.3.0
- Include affected entity classes.
import 'package:objectbox/objectbox.dart';
/// [Card] model for database
@Entity()
class Card {
///
Card({
required this.bankName,
required this.cardNumber,
required this.ownersName,
required this.phoneNumber,
required this.expDate,
required this.moneyType,
});
///
int id = 0;
/// Bank name
final String bankName;
/// Card number
final String cardNumber;
/// Owners name
final String ownersName;
/// Phone number
final String phoneNumber;
/// Expire date
final String expDate;
/// Money type
final String moneyType;
@override
bool operator ==(Object other) {
if (identical(this, other)) return true;
return other is Card &&
other.bankName == bankName &&
other.cardNumber == cardNumber &&
other.ownersName == ownersName &&
other.phoneNumber == phoneNumber &&
other.expDate == expDate &&
other.moneyType == moneyType;
}
@override
int get hashCode {
return bankName.hashCode ^
cardNumber.hashCode ^
ownersName.hashCode ^
phoneNumber.hashCode ^
expDate.hashCode ^
moneyType.hashCode;
}
Card copyWith({
String? bankName,
String? cardNumber,
String? ownersName,
String? phoneNumber,
String? expDate,
String? moneyType,
}) {
return Card(
bankName: bankName ?? this.bankName,
cardNumber: cardNumber ?? this.cardNumber,
ownersName: ownersName ?? this.ownersName,
phoneNumber: phoneNumber ?? this.phoneNumber,
expDate: expDate ?? this.expDate,
moneyType: moneyType ?? this.moneyType,
);
}
}
Logs, stack traces
Unsupported operation: Loaded ObjectBox core dynamic library has unsupported version 0.13.0, expected ^0.14.0
loadObjectBoxLib
package:objectbox/…/bindings/bindings.dart:75
C
package:objectbox/…/bindings/bindings.dart:84
package:objectbox/src/native/bindings/bindings.dart C
package:objectbox/…/bindings/bindings.dart:1
new Model
package:objectbox/…/native/model.dart:19
new Store
package:objectbox/…/native/store.dart:105
new TestEnv
test\test_env.dart:13
main.<fn>
Additional context
This is a package that manages the card database