@Test(dependsOnMethods = "testAttachNodesToBackendPool")
public void testAddInboundNatRule() {
IdReference frontendIp = IdReference.create(lb.properties().frontendIPConfigurations().get(0).id());
InboundNatRuleProperties natProps = InboundNatRuleProperties.builder().frontendIPConfiguration(frontendIp)
.frontendPort(5679).backendPort(56710).protocol(Tcp).build();
InboundNatRule natRule = InboundNatRule.create("inboundnat", null, natProps, null);
LoadBalancerProperties props = lb.properties().toBuilder().inboundNatRules(ImmutableList.of(natRule)).build();
lb = updateLoadBalancer(lbName, props);
assertEquals(lb.properties().inboundNatRules().size(), 1);
assertEquals(lb.properties().inboundNatRules().get(0).name(), natRule.name());
InboundNatRule createdRule = lb.properties().inboundNatRules().get(0);
NetworkInterfaceCard updatedNic = attachNicToNatRule(nicNames.get(0), createdRule);
List<IdReference> natRulesInNic = updatedNic.properties().ipConfigurations().get(0).properties()
.loadBalancerInboundNatRules();
assertEquals(natRulesInNic.size(), 1);
assertEquals(natRulesInNic.get(0), IdReference.create(createdRule.id()));
lb = lbApi.get(lbName);
IdReference backendIpRef = IdReference.create(updatedNic.properties().ipConfigurations().get(0).id());
assertEquals(lb.properties().inboundNatRules().size(), 1);
assertEquals(lb.properties().inboundNatRules().get(0).properties().backendIPConfiguration(), backendIpRef);
}