Refactoring: split into many files
This commit is contained in:
@ -1,4 +1,7 @@
|
||||
import {MeterbusLib} from './meterbus'
|
||||
import {MeterbusLibLongFrame} from './longframe'
|
||||
import {MeterbusLibExceptions} from './exceptions'
|
||||
import {MeterbusLibFrames} from './simpleframes'
|
||||
|
||||
import * as mocha from 'mocha'
|
||||
import * as chai from 'chai'
|
||||
@ -55,80 +58,80 @@ describe('The Meterbus Library', () => {
|
||||
const telegram = new MeterbusLib.Telegram()
|
||||
telegram.fromHexString(inputOKControlframe)
|
||||
telegram.parse()
|
||||
expect(telegram.frame).instanceof(MeterbusLib.ControlFrame)
|
||||
expect(telegram.frame).instanceof(MeterbusLibFrames.ControlFrame)
|
||||
})
|
||||
it('should detect a short frame', () => {
|
||||
const telegram = new MeterbusLib.Telegram()
|
||||
telegram.fromHexString(inputOkShortframe)
|
||||
telegram.parse()
|
||||
expect(telegram.frame).instanceof(MeterbusLib.ShortFrame)
|
||||
expect(telegram.frame).instanceof(MeterbusLibFrames.ShortFrame)
|
||||
})
|
||||
it('should detect a long frame', () => {
|
||||
const telegram = new MeterbusLib.Telegram()
|
||||
telegram.fromHexString(inputOkLongFrame_1phase_electric)
|
||||
telegram.parse()
|
||||
expect(telegram.frame).instanceof(MeterbusLib.LongFrame)
|
||||
expect(telegram.frame).instanceof(MeterbusLibLongFrame.LongFrame)
|
||||
})
|
||||
it('should detect a single char frame', () => {
|
||||
const telegram = new MeterbusLib.Telegram()
|
||||
telegram.fromHexString(inputOkSingleCharacter)
|
||||
telegram.parse()
|
||||
expect(telegram.frame).instanceof(MeterbusLib.SingleCharFrame)
|
||||
expect(telegram.frame).instanceof(MeterbusLibFrames.SingleCharFrame)
|
||||
})
|
||||
it('should detect an invalid telegram (invalid start char)', () => {
|
||||
const telegram = new MeterbusLib.Telegram()
|
||||
telegram.fromHexString(inputNOk_wrong_startcode)
|
||||
expect(() => telegram.parse()).to.throw(MeterbusLib.InvalidStartCharError)
|
||||
expect(() => telegram.parse()).to.throw(MeterbusLibExceptions.InvalidStartCharError)
|
||||
})
|
||||
it('should detect an invalid telegram (invalid stop char)', () => {
|
||||
const telegram = new MeterbusLib.Telegram()
|
||||
telegram.fromHexString(inputNOKControlframe_wrong_stopcode)
|
||||
expect(() => telegram.parse()).to.throw(MeterbusLib.InvalidStopCharError)
|
||||
expect(() => telegram.parse()).to.throw(MeterbusLibExceptions.InvalidStopCharError)
|
||||
})
|
||||
it('should detect an invalid telegram (invalid checksum)', () => {
|
||||
const telegram = new MeterbusLib.Telegram()
|
||||
telegram.fromHexString(inputNOkLongFrame_thermometer_checksum_failure)
|
||||
expect(() => telegram.parse()).to.throw(MeterbusLib.InvalidChecksumError)
|
||||
expect(() => telegram.parse()).to.throw(MeterbusLibExceptions.InvalidChecksumError)
|
||||
})
|
||||
it('should detect an invalid telegram (invalid second length)', () => {
|
||||
const telegram = new MeterbusLib.Telegram()
|
||||
telegram.fromHexString(inputNOKControlframe_wrong_secondlength)
|
||||
expect(() => telegram.parse()).to.throw(MeterbusLib.InvalidSecondLengthError)
|
||||
expect(() => telegram.parse()).to.throw(MeterbusLibExceptions.InvalidSecondLengthError)
|
||||
})
|
||||
it('should detect an invalid telegram (too short)', () => {
|
||||
const telegram = new MeterbusLib.Telegram()
|
||||
telegram.fromHexString(inputNOKLongframe_too_short)
|
||||
expect(() => telegram.parse()).to.throw(MeterbusLib.PayloadTooShortError)
|
||||
expect(() => telegram.parse()).to.throw(MeterbusLibExceptions.PayloadTooShortError)
|
||||
})
|
||||
it('should parse cField from a short frame', () => {
|
||||
const telegram = new MeterbusLib.Telegram()
|
||||
telegram.fromHexString(inputOkShortframe)
|
||||
telegram.parse()
|
||||
expect((telegram.frame as MeterbusLib.ShortFrame).cField).to.equal(1)
|
||||
expect((telegram.frame as MeterbusLibFrames.ShortFrame).cField).to.equal(1)
|
||||
})
|
||||
it('should parse address from a short frame', () => {
|
||||
const telegram = new MeterbusLib.Telegram()
|
||||
telegram.fromHexString(inputOkShortframe)
|
||||
telegram.parse()
|
||||
expect((telegram.frame as MeterbusLib.ShortFrame).address).to.equal(2)
|
||||
expect((telegram.frame as MeterbusLibFrames.ShortFrame).address).to.equal(2)
|
||||
})
|
||||
it('should parse cField from a control frame', () => {
|
||||
const telegram = new MeterbusLib.Telegram()
|
||||
telegram.fromHexString(inputOKControlframe)
|
||||
telegram.parse()
|
||||
expect((telegram.frame as MeterbusLib.ControlFrame).cField).to.equal(1)
|
||||
expect((telegram.frame as MeterbusLibFrames.ControlFrame).cField).to.equal(1)
|
||||
})
|
||||
it('should parse address from a control frame', () => {
|
||||
const telegram = new MeterbusLib.Telegram()
|
||||
telegram.fromHexString(inputOKControlframe)
|
||||
telegram.parse()
|
||||
expect((telegram.frame as MeterbusLib.ControlFrame).address).to.equal(2)
|
||||
expect((telegram.frame as MeterbusLibFrames.ControlFrame).address).to.equal(2)
|
||||
})
|
||||
it('should parse ciField from a control frame', () => {
|
||||
const telegram = new MeterbusLib.Telegram()
|
||||
telegram.fromHexString(inputOKControlframe)
|
||||
telegram.parse()
|
||||
expect((telegram.frame as MeterbusLib.ControlFrame).ciField).to.equal(3)
|
||||
expect((telegram.frame as MeterbusLibFrames.ControlFrame).ciField).to.equal(3)
|
||||
})
|
||||
|
||||
})
|
Reference in New Issue
Block a user