test_xltunai.py 6.04 KB
import xltunai

def test_getOperatorFromProduct():
    assert xltunai.getOperatorFromProduct('XL5') == 'XL'
    assert xltunai.getOperatorFromProduct('XL10') == 'XL'
    assert xltunai.getOperatorFromProduct('XL25') == 'XL'
    assert xltunai.getOperatorFromProduct('XL50') == 'XL'
    assert xltunai.getOperatorFromProduct('XL100') == 'XL'
    
    assert xltunai.getOperatorFromProduct('XA5') == 'XA'
    assert xltunai.getOperatorFromProduct('XA10') == 'XA'
    assert xltunai.getOperatorFromProduct('XA25') == 'XA'
    assert xltunai.getOperatorFromProduct('XA50') == 'XA'
    assert xltunai.getOperatorFromProduct('XA100') == 'XA'
    
    assert xltunai.getOperatorFromProduct('XL100H') == 'XL'

def test_getNominalFromProduct():
    assert xltunai.getNominalFromProduct('XL5') == 5000
    assert xltunai.getNominalFromProduct('XL10') == 10000
    assert xltunai.getNominalFromProduct('XL25') == 25000
    assert xltunai.getNominalFromProduct('XL50') == 50000
    assert xltunai.getNominalFromProduct('XL100') == 100000
    
    assert xltunai.getNominalFromProduct('XA5') == 5000
    assert xltunai.getNominalFromProduct('XA10') == 10000
    assert xltunai.getNominalFromProduct('XA25') == 25000
    assert xltunai.getNominalFromProduct('XA50') == 50000
    assert xltunai.getNominalFromProduct('XA100') == 100000
    
    assert xltunai.getNominalFromProduct('XL100H') == 100000

def test_getDenomCodeFromProduct():
    assert xltunai.getDenomCodeFromProduct('XL5') == 1
    assert xltunai.getDenomCodeFromProduct('XL10') == 2
    assert xltunai.getDenomCodeFromProduct('XL25') == 3
    assert xltunai.getDenomCodeFromProduct('XL50') == 4
    assert xltunai.getDenomCodeFromProduct('XL100') == 5
    assert xltunai.getDenomCodeFromProduct('XL200') == 6
    
    assert xltunai.getDenomCodeFromProduct('XL300') == None

def test_getCostFromProduct():
    assert xltunai.getCostFromProduct('XL5') == 5500
    assert xltunai.getCostFromProduct('XL10') == 10500
    assert xltunai.getCostFromProduct('XL25') == 25000
    assert xltunai.getCostFromProduct('XL50') == 50000
    assert xltunai.getCostFromProduct('XL100') == 100000
    assert xltunai.getCostFromProduct('XL200') == 200000
    
    assert xltunai.getCostFromProduct('XL300') == 0

def test_getSNFromMessage():
    assert xltunai.getSNFromMessage('Nomor 6287884153131 telah berhasil diisi pulsa sebesar Rp.5000. Nikmati transaksi XL Tunai lainnya. Ref ID :75614092695337') == '75614092695337'
    assert xltunai.getSNFromMessage('Nomor 6287884153131 telah berhasil diisi pulsa sebesar Rp.5000. Nikmati transaksi XL Tunai lainnya. SN ID :75614092695337') == ''
    
def test_toInternationalNumber():
    assert xltunai.toInternationalNumber('081808180818') == '6281808180818'
    assert xltunai.toInternationalNumber('6281808180818') == '6281808180818'
    assert xltunai.toInternationalNumber('4114') == '4114'
    
def test_getDestinationFromMessage():
    assert xltunai.getDestinationFromMessage('Nomor 6287884153131 telah berhasil diisi pulsa sebesar Rp.5000. Nikmati transaksi XL Tunai lainnya. Ref ID :75614092695337') == '6287884153131'

def test_getNominalFromMessage():    
    assert xltunai.getNominalFromMessage('Nomor 6287884153131 telah berhasil diisi pulsa sebesar Rp.5000. Nikmati transaksi XL Tunai lainnya. Ref ID :75614092695337') == '5000'
    assert xltunai.getNominalFromMessage('Nomor 6287884153131 telah berhasil diisi pulsa sebesar Rp.10000. Nikmati transaksi XL Tunai lainnya. Ref ID :75614092695337') == '10000'
    assert xltunai.getNominalFromMessage('Nomor 6287884153131 telah berhasil diisi pulsa sebesar Rp.25000. Nikmati transaksi XL Tunai lainnya. Ref ID :75614092695337') == '25000'
    assert xltunai.getNominalFromMessage('Nomor 6287884153131 telah berhasil diisi pulsa sebesar Rp.50000. Nikmati transaksi XL Tunai lainnya. Ref ID :75614092695337') == '50000'
    assert xltunai.getNominalFromMessage('Nomor 6287884153131 telah berhasil diisi pulsa sebesar Rp.100000. Nikmati transaksi XL Tunai lainnya. Ref ID :75614092695337') == '100000'
    
    assert xltunai.getNominalFromMessage('Nomor 6287884153131 telah berhasil diisi pulsa sebesar Rp.. Nikmati transaksi XL Tunai lainnya. Ref ID :75614092695337') == ''
    assert xltunai.getNominalFromMessage('Bla bla') == ''
    
    
def test_getBalanceFromUSSDResponse():
    message = """USSD response message:  Saldo Rp134500
Isi Pulsa 5000, Pilih menu no.2
1 Belanja di toko
2 Isi Pulsa
3 Pembayaran
4 Belanja Online
5 Kirim Uang
6 Tarik Uang
7 Pengaturan
8 Info"""
    assert xltunai.getBalanceFromUSSDResponse(message) == 134500

def test_getTopupUSSDCommand():
    assert xltunai.getTopupUSSDCommand('081808180818', 'XL2', '1234') == None
    assert xltunai.getTopupUSSDCommand('081808180818', 'XL5', '1234') == '*123*120*2*2*081808180818*1*1234#'
    assert xltunai.getTopupUSSDCommand('6281808180818', 'XL5', '1234') == '*123*120*2*2*6281808180818*1*1234#'
    assert xltunai.getTopupUSSDCommand('081808180818', 'XL50', '1234') == '*123*120*2*2*081808180818*4*1234#'
    
def test_valid_sender():
    assert xltunai.isValidSender('120') == True
    assert xltunai.isValidSender('121') == False
    
def test_getResponseCodeByMessage():
    assert xltunai.getResponseCodeByMessage('Nomor 6287884153131 telah berhasil diisi pulsa sebesar Rp.5000. Nikmati transaksi XL Tunai lainnya. Ref ID :75614092695337') == '00'
    assert xltunai.getResponseCodeByMessage('Bla bla bla') == '68'
        
def test_getResponseCodeByUSSDResponse():
    assert xltunai.getResponseCodeByUSSDResponse('Mohon maaf, nomor yang Anda masukkan tidak valid') == '14'
    assert xltunai.getResponseCodeByUSSDResponse('Bla bla bla') == '68'

def test_getMSISDNFromSIMCardInfo():
    assert xltunai.getMSISDNFromSIMCardInfo('Nomor 6287880852347 adalah nomor dengan POC JK0    dengan ICCID 8962116820756544479') == '6287880852347'
    assert xltunai.getMSISDNFromSIMCardInfo('bla bla bla') == ''
    
def test_getIMSIFromSIMCardInfo():
    assert xltunai.getIMSIFromSIMCardInfo('Nomor 6287880852347 adalah nomor dengan POC JK0    dengan ICCID 8962116820756544479') == '8962116820756544479'
    assert xltunai.getIMSIFromSIMCardInfo('bla bla bla') == ''