### Question:
Message { public void setQos(QoS qos) { header.qos = qos; } Message(Type type);  Message(Header header); final void write(OutputStream out); final byte[] toBytes(); void setRetained(boolean retain); boolean isRetained(); void setQos(QoS qos); QoS getQos(); void setDup(boolean dup); boolean isDup(); Type getType(); static char nextId();  }### Answer:
@Test public void qosIsSetCorrectly() { Message msg = new ConcreteMessage(Type.CONNECT); assertEquals(0, getQoSValue(msg)); msg.setQos(QoS.AT_LEAST_ONCE); assertEquals(1, getQoSValue(msg)); msg.setQos(QoS.AT_MOST_ONCE); assertEquals(0, getQoSValue(msg)); msg.setQos(QoS.EXACTLY_ONCE); assertEquals(2, getQoSValue(msg)); }