Refactoring: split into many files

This commit is contained in:
Wolfgang Hottgenroth
2017-08-09 23:05:24 +02:00
parent f9a4231e65
commit 0c998e7709
8 changed files with 227 additions and 166 deletions

View File

@ -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)
})
})