/* * Copyright (c) 2013 EMC Corporation * All Rights Reserved */ package com.emc.storageos.svcs.errorhandling.model; import static org.junit.Assert.assertTrue; import java.util.HashMap; import java.util.HashSet; import java.util.Map; import java.util.ResourceBundle; import java.util.Set; import java.util.TreeSet; import org.junit.Test; import com.emc.storageos.svcs.errorhandling.resources.ServiceCode; import com.emc.storageos.svcs.errorhandling.utils.MessageUtils; public class ServiceCodeTest { @Test public void messagesWithoutCodes() { final Set<String> failures = new TreeSet<String>(); final ResourceBundle bundle = MessageUtils.bundleForClass(ServiceCode.class); for (final String key : bundle.keySet()) { try { ServiceCode.valueOf(key); } catch (Exception e) { failures.add(key); } } assertTrue("The following keys in the Bundle do not map to a ServiceCode: " + failures, failures.isEmpty()); } @Test public void codesWithoutMessages() { final Set<String> failures = new TreeSet<String>(); final ResourceBundle bundle = MessageUtils.bundleForClass(ServiceCode.class); for (final ServiceCode serviceCode : ServiceCode.values()) { String name = serviceCode.name(); if (!bundle.keySet().contains(name)) { failures.add(name); } } assertTrue("The following ServiceCodes do not have messages in the Bundle: " + failures, failures.isEmpty()); } @Test public void serviceCodeNumbersAreUnique() { final Map<Integer, ServiceCode> codes = new HashMap<Integer, ServiceCode>(); final Map<Integer, Set<ServiceCode>> duplicates = new HashMap<Integer, Set<ServiceCode>>(); for (final ServiceCode code : ServiceCode.values()) { final int serviceCode = code.getCode(); final ServiceCode orginal = codes.put(serviceCode, code); if (orginal != null) { final Set<ServiceCode> set; if (duplicates.containsKey(serviceCode)) { set = duplicates.get(serviceCode); } else { set = new HashSet<ServiceCode>(); set.add(orginal); } set.add(code); duplicates.put(serviceCode, set); } } assertTrue("Found Duplicates: " + duplicates, duplicates.isEmpty()); } }