@@ -592,6 +592,112 @@ describe('LockUpTransferManagerWrapper', () => {
592
592
} ) ;
593
593
} ) ;
594
594
595
+
596
+ describe ( 'addNewLockUpType' , ( ) => {
597
+ test ( 'should call addNewLockUpType' , async ( ) => {
598
+ const expectedOwnerResult = '0x8888888888888888888888888888888888888888' ;
599
+ const lockupName = 'Lockup1' ;
600
+ const expectedDecimalsResult = new BigNumber ( 18 ) ;
601
+ const expectedLockupAmount = valueToWei ( new BigNumber ( 0 ) , expectedDecimalsResult ) ;
602
+ const expectedStartTime = new BigNumber ( 0 ) ;
603
+ const expectedLockUpPeriodSeconds = new BigNumber ( 0 ) ;
604
+ const expectedReleaseFrequencySeconds = new BigNumber ( 0 ) ;
605
+ const expectedUnlockedAmount = new BigNumber ( 0 ) ;
606
+ const expectedGetLockupResult = [
607
+ expectedLockupAmount ,
608
+ expectedStartTime ,
609
+ expectedLockUpPeriodSeconds ,
610
+ expectedReleaseFrequencySeconds ,
611
+ expectedUnlockedAmount ,
612
+ ] ;
613
+ const mockedGetLockupParams = {
614
+ lockupName,
615
+ } ;
616
+
617
+ // Security Token Address expected
618
+ const expectedSecurityTokenAddress = '0x3333333333333333333333333333333333333333' ;
619
+ // Setup get Security Token Address
620
+ const mockedGetSecurityTokenAddressMethod = mock ( MockedCallMethod ) ;
621
+ when ( mockedContract . securityToken ) . thenReturn ( instance ( mockedGetSecurityTokenAddressMethod ) ) ;
622
+ when ( mockedGetSecurityTokenAddressMethod . callAsync ( ) ) . thenResolve ( expectedSecurityTokenAddress ) ;
623
+ when ( mockedContractFactory . getSecurityTokenContract ( expectedSecurityTokenAddress ) ) . thenResolve (
624
+ instance ( mockedSecurityTokenContract ) ,
625
+ ) ;
626
+ const mockedSecurityTokenDecimalsMethod = mock ( MockedCallMethod ) ;
627
+ when ( mockedSecurityTokenDecimalsMethod . callAsync ( ) ) . thenResolve ( expectedDecimalsResult ) ;
628
+ when ( mockedSecurityTokenContract . decimals ) . thenReturn ( instance ( mockedSecurityTokenDecimalsMethod ) ) ;
629
+ const mockedSecurityTokenOwnerMethod = mock ( MockedCallMethod ) ;
630
+ when ( mockedSecurityTokenOwnerMethod . callAsync ( ) ) . thenResolve ( expectedOwnerResult ) ;
631
+ when ( mockedSecurityTokenContract . owner ) . thenReturn ( instance ( mockedSecurityTokenOwnerMethod ) ) ;
632
+
633
+ // Mock web3 wrapper owner
634
+ when ( mockedWrapper . getAvailableAddressesAsync ( ) ) . thenResolve ( [ expectedOwnerResult ] ) ;
635
+
636
+ // Mocked method
637
+ const mockedGetLockupMethod = mock ( MockedCallMethod ) ;
638
+ // Stub the method
639
+ when ( mockedContract . getLockUp ) . thenReturn ( instance ( mockedGetLockupMethod ) ) ;
640
+ // Stub the request
641
+ when ( mockedGetLockupMethod . callAsync ( objectContaining ( stringToBytes32 ( mockedGetLockupParams . lockupName ) ) ) ) . thenResolve (
642
+ expectedGetLockupResult ,
643
+ ) ;
644
+
645
+ const mockedParams = {
646
+ lockupAmount : new BigNumber ( 100 ) ,
647
+ startTime : new Date ( 2030 , 1 ) ,
648
+ lockUpPeriodSeconds : new BigNumber ( 3600 ) ,
649
+ releaseFrequencySeconds : new BigNumber ( 60 ) ,
650
+ lockupName,
651
+ txData : { } ,
652
+ safetyFactor : 10 ,
653
+ } ;
654
+ const expectedResult = getMockedPolyResponse ( ) ;
655
+ // Mocked method
656
+ const mockedMethod = mock ( MockedSendMethod ) ;
657
+ // Stub the method
658
+ when ( mockedContract . addNewLockUpType ) . thenReturn ( instance ( mockedMethod ) ) ;
659
+ // Stub the request
660
+ when (
661
+ mockedMethod . sendTransactionAsync (
662
+ objectContaining ( mockedParams . lockupAmount ) ,
663
+ objectContaining ( dateToBigNumber ( mockedParams . startTime ) ) ,
664
+ objectContaining ( mockedParams . lockUpPeriodSeconds ) ,
665
+ objectContaining ( mockedParams . releaseFrequencySeconds ) ,
666
+ stringToBytes32 ( mockedParams . lockupName ) ,
667
+ mockedParams . txData ,
668
+ mockedParams . safetyFactor ,
669
+ ) ,
670
+ ) . thenResolve ( expectedResult ) ;
671
+
672
+ // Real call
673
+ const result = await target . addNewLockUpType ( mockedParams ) ;
674
+
675
+ // Result expectation
676
+ expect ( result ) . toBe ( expectedResult ) ;
677
+ // Verifications
678
+ verify ( mockedContract . addNewLockUpType ) . once ( ) ;
679
+ verify (
680
+ mockedMethod . sendTransactionAsync (
681
+ objectContaining ( mockedParams . lockupAmount ) ,
682
+ objectContaining ( dateToBigNumber ( mockedParams . startTime ) ) ,
683
+ objectContaining ( mockedParams . lockUpPeriodSeconds ) ,
684
+ objectContaining ( mockedParams . releaseFrequencySeconds ) ,
685
+ stringToBytes32 ( mockedParams . lockupName ) ,
686
+ mockedParams . txData ,
687
+ mockedParams . safetyFactor ,
688
+ ) ,
689
+ ) . once ( ) ;
690
+ verify ( mockedSecurityTokenOwnerMethod . callAsync ( ) ) . once ( ) ;
691
+ verify ( mockedSecurityTokenContract . owner ) . once ( ) ;
692
+ verify ( mockedContract . securityToken ) . twice ( ) ;
693
+ verify ( mockedGetSecurityTokenAddressMethod . callAsync ( ) ) . twice ( ) ;
694
+ verify ( mockedContractFactory . getSecurityTokenContract ( expectedSecurityTokenAddress ) ) . twice ( ) ;
695
+ verify ( mockedWrapper . getAvailableAddressesAsync ( ) ) . once ( ) ;
696
+ verify ( mockedContract . getLockUp ) . once ( ) ;
697
+ verify ( mockedGetLockupMethod . callAsync ( objectContaining ( stringToBytes32 ( mockedGetLockupParams . lockupName ) ) ) ) . once ( ) ;
698
+ } ) ;
699
+ } ) ;
700
+
595
701
describe ( 'verifyTransfer' , ( ) => {
596
702
test ( 'should verify Transfer' , async ( ) => {
597
703
const statusCode = new BigNumber ( 2 ) ;
0 commit comments