@Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj instanceof BandwidthProfileAction) {
            final BandwidthProfileAction that = (BandwidthProfileAction) obj;
            return this.getClass() == that.getClass() &&
                    Objects.equals(this.action, that.action) &&
                    Objects.equals(this.dscpClass, that.dscpClass) &&
                    Objects.equals(this.ipPrecedence, that.ipPrecedence) &&
                    Objects.equals(this.dropPrecedence, that.dropPrecedence);
        }
        return false;
    }
@Test
    public void testEquals() {
        BandwidthProfileAction passAction1 = BandwidthProfileAction.builder()
                .action(Action.PASS)
                .build();
        BandwidthProfileAction passAction2 = BandwidthProfileAction.builder()
                .action(Action.PASS)
                .build();
        BandwidthProfileAction discardAction1 = BandwidthProfileAction.builder()
                .action(Action.DISCARD)
                .build();
        BandwidthProfileAction discardAction2 = BandwidthProfileAction.builder()
                .action(Action.DISCARD)
                .build();
        BandwidthProfileAction remarkAction1 = BandwidthProfileAction.builder()
                .action(Action.REMARK)
                .dscpClass(DscpClass.AF11)
                .build();
        BandwidthProfileAction remarkAction2 = BandwidthProfileAction.builder()
                .action(Action.REMARK)
                .dscpClass(DscpClass.AF11)
                .build();
        new EqualsTester()
                .addEqualityGroup(passAction1, passAction2)
                .addEqualityGroup(discardAction1, discardAction2)
                .addEqualityGroup(remarkAction1, remarkAction2)
                .testEquals();
    }