sms: Fix the round-trip test for RP handling.
Fix the round-trip handling. This is still missing for message types in other directions as this would require me writing test cases first. I will get to that.
This commit is contained in:
parent
1dd46f82bb
commit
e2372f67e8
38
GSM411.st
38
GSM411.st
|
@ -195,7 +195,6 @@ Object subclass: GSMRpInformationElement [
|
||||||
len printNl.
|
len printNl.
|
||||||
^self new
|
^self new
|
||||||
readFrom: (aStream next: len);
|
readFrom: (aStream next: len);
|
||||||
inspect;
|
|
||||||
yourself.
|
yourself.
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
@ -212,6 +211,12 @@ GSMRpInformationElement subclass: GSMRpOrigantorAddress [
|
||||||
readFrom: anArray [
|
readFrom: anArray [
|
||||||
data := anArray
|
data := anArray
|
||||||
]
|
]
|
||||||
|
|
||||||
|
writeOn: aMessage with: anAttribute [
|
||||||
|
aMessage
|
||||||
|
putByte: data size;
|
||||||
|
putByteArray: data
|
||||||
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
GSMRpInformationElement subclass: GSMRpDestinationAddress [
|
GSMRpInformationElement subclass: GSMRpDestinationAddress [
|
||||||
|
@ -226,6 +231,12 @@ GSMRpInformationElement subclass: GSMRpDestinationAddress [
|
||||||
readFrom: anArray [
|
readFrom: anArray [
|
||||||
data := anArray
|
data := anArray
|
||||||
]
|
]
|
||||||
|
|
||||||
|
writeOn: aMessage with: anAttribute [
|
||||||
|
aMessage
|
||||||
|
putByte: data size;
|
||||||
|
putByteArray: data
|
||||||
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
GSMRpInformationElement subclass: GSMRpUserData [
|
GSMRpInformationElement subclass: GSMRpUserData [
|
||||||
|
@ -240,6 +251,12 @@ GSMRpInformationElement subclass: GSMRpUserData [
|
||||||
readFrom: anArray [
|
readFrom: anArray [
|
||||||
data := anArray
|
data := anArray
|
||||||
]
|
]
|
||||||
|
|
||||||
|
writeOn: aMessage with: anAttribute [
|
||||||
|
aMessage
|
||||||
|
putByte: data size;
|
||||||
|
putByteArray: data
|
||||||
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
Osmo.TLVParserBase subclass: GSMRpMessage [
|
Osmo.TLVParserBase subclass: GSMRpMessage [
|
||||||
|
@ -274,6 +291,13 @@ Osmo.TLVParserBase subclass: GSMRpMessage [
|
||||||
[self parseOptional: attr tag: aStream peek stream: aStream].
|
[self parseOptional: attr tag: aStream peek stream: aStream].
|
||||||
].
|
].
|
||||||
]
|
]
|
||||||
|
|
||||||
|
writeHeaderOn: aMessage [
|
||||||
|
direction = #msn
|
||||||
|
ifTrue: [aMessage putByte: self class messageTypeToNetwork]
|
||||||
|
ifFalse: [aMessage putByte: self class messageTypeToMS].
|
||||||
|
aMessage putByte: reference.
|
||||||
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
GSMRpMessage subclass: GSMRpData [
|
GSMRpMessage subclass: GSMRpData [
|
||||||
|
@ -281,6 +305,14 @@ GSMRpMessage subclass: GSMRpData [
|
||||||
<category: 'OsmoGSM-SMS-Message'>
|
<category: 'OsmoGSM-SMS-Message'>
|
||||||
<comment: '7.3.1'>
|
<comment: '7.3.1'>
|
||||||
|
|
||||||
|
GSMRpData class >> messageTypeToNetwork [
|
||||||
|
^2r000
|
||||||
|
]
|
||||||
|
|
||||||
|
GSMRpData class >> messageTypeToMS [
|
||||||
|
^2r001
|
||||||
|
]
|
||||||
|
|
||||||
GSMRpData class >> tlvDescription [
|
GSMRpData class >> tlvDescription [
|
||||||
^OrderedCollection new
|
^OrderedCollection new
|
||||||
add: GSMRpOrigantorAddress asTLVDescription;
|
add: GSMRpOrigantorAddress asTLVDescription;
|
||||||
|
@ -309,6 +341,10 @@ GSMRpMessage subclass: GSMRpAck [
|
||||||
add: GSMRpUserData asTLVDescription beOptional yourself;
|
add: GSMRpUserData asTLVDescription beOptional yourself;
|
||||||
yourself.
|
yourself.
|
||||||
]
|
]
|
||||||
|
|
||||||
|
GSMRpAck class >> messageTypeToNetwork [
|
||||||
|
^2r010
|
||||||
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ TestCase subclass: GSM411Test [
|
||||||
assert: dec toMessage asByteArray = inp.
|
assert: dec toMessage asByteArray = inp.
|
||||||
|
|
||||||
self
|
self
|
||||||
assert: dec rpMessage toMessage asByteArray = dec userData data.
|
assert: dec rpMessage toMessage asByteArray equals: dec userData data.
|
||||||
]
|
]
|
||||||
|
|
||||||
testCPData2 [
|
testCPData2 [
|
||||||
|
@ -46,5 +46,8 @@ TestCase subclass: GSM411Test [
|
||||||
self
|
self
|
||||||
assert: dec type = GSMCpData messageType;
|
assert: dec type = GSMCpData messageType;
|
||||||
assert: dec toMessage asByteArray = inp.
|
assert: dec toMessage asByteArray = inp.
|
||||||
|
|
||||||
|
self
|
||||||
|
assert: dec rpMessage toMessage asByteArray equals: dec userData data.
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
Reference in New Issue