@@ -790,5 +790,33 @@ public void MerchantAggregate_RemoveContract_MerchantDoesNotHaveContract_ErrorTh
790790 result . IsFailed . ShouldBeTrue ( ) ;
791791 result . Status . ShouldBe ( ResultStatus . Invalid ) ;
792792 }
793+
794+ [ Fact ]
795+ public void MerchantAggregate_RemoveOperator_And_ReAdd_OperatorIsReAdded ( )
796+ {
797+ MerchantAggregate aggregate = MerchantAggregate . Create ( TestData . MerchantId ) ;
798+ aggregate . Create ( TestData . EstateId , TestData . MerchantName , TestData . DateMerchantCreated , TestData . AddressModel , TestData . ContactModel ,
799+ TestData . SettlementScheduleModel ) ;
800+ aggregate . AssignOperator ( TestData . OperatorId , TestData . OperatorName , TestData . OperatorMerchantNumber , TestData . OperatorTerminalNumber ) ;
801+
802+ Result result = aggregate . RemoveOperator ( TestData . OperatorId ) ;
803+ result . IsSuccess . ShouldBeTrue ( ) ;
804+
805+ Merchant merchantModel = aggregate . GetMerchant ( ) ;
806+ merchantModel . Operators . ShouldHaveSingleItem ( ) ;
807+ Operator operatorModel = merchantModel . Operators . Single ( ) ;
808+ operatorModel . OperatorId . ShouldBe ( TestData . OperatorId ) ;
809+ operatorModel . Name . ShouldBe ( TestData . OperatorName ) ;
810+ operatorModel . MerchantNumber . ShouldBe ( TestData . OperatorMerchantNumber ) ;
811+ operatorModel . TerminalNumber . ShouldBe ( TestData . OperatorTerminalNumber ) ;
812+ operatorModel . IsDeleted . ShouldBeTrue ( ) ;
813+
814+ result = aggregate . AssignOperator ( TestData . OperatorId , TestData . OperatorName , TestData . OperatorMerchantNumber , TestData . OperatorTerminalNumber ) ;
815+ result . IsSuccess . ShouldBeTrue ( ) ;
816+ merchantModel = aggregate . GetMerchant ( ) ;
817+ merchantModel . Operators . ShouldHaveSingleItem ( ) ;
818+ operatorModel = merchantModel . Operators . Single ( ) ;
819+ operatorModel . IsDeleted . ShouldBeFalse ( ) ;
820+ }
793821 }
794822}
0 commit comments