Skip to content

Instantly share code, notes, and snippets.

class EMICalculator {
final double amount, rate, time;
EMICalculator(this.amount, this.rate, this.time);
double calculateEMI()
{
return amount*rate*(1 + rate)*time/((1+rate)*time-1);
}
}
void main()
{
test("EMI cannot be zero",()
{
EMICalculator emiCalculator=EMICalculator(1,2,3);
//Performing assertion
expect(emiCalculator.calculateEMI(),greaterThan(0),reason:"EMI calculated is zero");
});
}
//Domain Entity responsible for calculating EMI for given params.
class EMICalculator {
final double amount, rate, time;
EMICalculator(this.amount, this.rate, this.time);
double calculateEMI()
{
return -1;
}
void main()
{
test("Amount cannot be null",()
{
EMICalculator emiCalculator=EMICalculator(1,2,3);
//Performing assertion
expect(emiCalculator.amount,isNot(null), reason:"Amount cannot be null");
});
//Domain Entity responsible for calculating EMI for given params.
class EMICalculator {
final double amount, rate, time;
EMICalculator(this.amount, this.rate, this.time);
}
void main()
{
test("Amount cannot be null",()
{
EMICalculator emiCalculator=EMICalculator();
//Performing assertion
expect(emiCalculator.amount,isNot(null), reason:"Amount cannot be null");
});
//Domain Entity responsible for calculating EMI for given params.
class EMICalculator
{
double? amount,rate,time;
}
//Usecase Implementation
class ValidateBillingAndShippingAddressUseCase extends UseCase<
BillingAndShippingAddressValidationRequest,
BillingAndShippingAddressValidationResponse> {
final AddressRespository _addressRespository;
ValidateBillingAndShippingAddressUseCase(this._addressRespository);
@override
Stream<BillingAndShippingAddressValidationResponse> buildUseCase(
//Usecase Implementation
class PostBillingInfoUseCase
extends UseCase<BillingInfoRequest, BillingInfoResponse> {
final BillingInfoRepository _billingInfoRepository;
PostBillingInfoUseCase(this._billingInfoRepository);
@override
Stream<BillingInfoResponse> buildUseCase(BillingInfoRequest param) {
return _billingInfoRepository.postBillingInfo(param).asStream();
@PreyeaRegmi
PreyeaRegmi / usecasebase.dart
Last active June 29, 2021 10:42
Base use-case class in the application layer.
abstract class BaseUseCase<P, R> {
Stream<R> buildUseCase(P param);
StreamSubscription<R> execute(P param,void Function(R) result,void Function(String) error)
{
return buildUseCase(param).listen(result,onError: (Object exception, StackTrace stackTrace){
error(exception.toString());
});
}