import {TagValueMessage} from "./tagValueMessage.impl"; describe('TagValueMessage', () => { let message: TagValueMessage; beforeEach(() => { message = new TagValueMessage(); }); test('set, get, has, and delete methods', () => { expect(message.has('tag1')).toBe(false); expect(message.get('tag1')).toBeUndefined(); message.set('tag1', 'value1'); expect(message.has('tag1')).toBe(true); expect(message.get('tag1')).toBe('value1'); message.set('tag2', 'value2'); expect(message.has('tag2')).toBe(true); expect(message.get('tag2')).toBe('value2'); expect(message.delete('tag1')).toBe(true); expect(message.has('tag1')).toBe(false); expect(message.get('tag1')).toBeUndefined(); expect(message.delete('nonexistent')).toBe(false); }); test('clear method', () => { message.set('tag1', 'value1'); message.set('tag2', 'value2'); message.clear(); expect(message.has('tag1')).toBe(false); expect(message.get('tag1')).toBeUndefined(); expect(message.has('tag2')).toBe(false); expect(message.get('tag2')).toBeUndefined(); }); test('serialize and deserialize methods', () => { message.set('tag1', 'value1'); message.set('tag2', 'value2'); const serialized = message.serialize(); const deserializedMessage = new TagValueMessage(); deserializedMessage.deserialize(serialized); expect(deserializedMessage.has('tag1')).toBe(true); expect(deserializedMessage.get('tag1')).toBe('value1'); expect(deserializedMessage.has('tag2')).toBe(true); expect(deserializedMessage.get('tag2')).toBe('value2'); }); });