Java tutorial
/* * Copyright 2010-2013 Ning, Inc. * * Ning licenses this file to you under the Apache License, version 2.0 * (the "License"); you may not use this file except in compliance with the * License. You may obtain a copy of the License at: * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */ package com.ning.billing.account; import java.util.Locale; import java.util.UUID; import org.joda.time.DateTimeZone; import org.testng.Assert; import com.ning.billing.account.api.AccountData; import com.ning.billing.account.api.DefaultMutableAccountData; import com.ning.billing.account.dao.AccountModelDao; import com.ning.billing.catalog.api.Currency; public abstract class AccountTestUtils { public static void checkAccountsEqual(final AccountData retrievedAccount, final AccountData account) { final UUID fakeId = UUID.randomUUID(); checkAccountsEqual(new AccountModelDao(fakeId, retrievedAccount), new AccountModelDao(fakeId, account)); } public static void checkAccountsEqual(final AccountModelDao retrievedAccount, final AccountModelDao account) { if (retrievedAccount == null || account == null) { Assert.assertNull(retrievedAccount); Assert.assertNull(account); return; } // Check all fields but createdDate/updatedDate (comes from the context) Assert.assertEquals(retrievedAccount.getId(), account.getId()); Assert.assertEquals(retrievedAccount.getExternalKey(), account.getExternalKey()); Assert.assertEquals(retrievedAccount.getEmail(), account.getEmail()); Assert.assertEquals(retrievedAccount.getName(), account.getName()); Assert.assertEquals(retrievedAccount.getFirstNameLength(), account.getFirstNameLength()); Assert.assertEquals(retrievedAccount.getCurrency(), account.getCurrency()); Assert.assertEquals(retrievedAccount.getBillingCycleDayLocal(), account.getBillingCycleDayLocal()); Assert.assertEquals(retrievedAccount.getPaymentMethodId(), account.getPaymentMethodId()); Assert.assertEquals(retrievedAccount.getTimeZone(), account.getTimeZone()); Assert.assertEquals(retrievedAccount.getLocale(), account.getLocale()); Assert.assertEquals(retrievedAccount.getAddress1(), account.getAddress1()); Assert.assertEquals(retrievedAccount.getAddress2(), account.getAddress2()); Assert.assertEquals(retrievedAccount.getCompanyName(), account.getCompanyName()); Assert.assertEquals(retrievedAccount.getCity(), account.getCity()); Assert.assertEquals(retrievedAccount.getStateOrProvince(), account.getStateOrProvince()); Assert.assertEquals(retrievedAccount.getCountry(), account.getCountry()); Assert.assertEquals(retrievedAccount.getPostalCode(), account.getPostalCode()); Assert.assertEquals(retrievedAccount.getPhone(), account.getPhone()); Assert.assertEquals(retrievedAccount.getIsNotifiedForInvoices(), account.getIsNotifiedForInvoices()); Assert.assertEquals(retrievedAccount.getMigrated(), account.getMigrated()); } public static AccountModelDao createTestAccount() { return createTestAccount(30, 31, UUID.randomUUID().toString().substring(0, 4)); } public static AccountModelDao createTestAccount(final String phone) { return createTestAccount(30, 31, phone); } public static AccountModelDao createTestAccount(final int billCycleDay) { return createTestAccount(billCycleDay, billCycleDay, UUID.randomUUID().toString().substring(0, 4)); } private static AccountModelDao createTestAccount(final int billCycleDayUTC, final int billCycleDayLocal, final String phone) { final AccountData accountData = createAccountData(billCycleDayUTC, billCycleDayLocal, phone); return new AccountModelDao(UUID.randomUUID(), accountData); } public static AccountData createAccountData() { return createAccountData(30, 31, UUID.randomUUID().toString().substring(0, 4)); } private static AccountData createAccountData(final int billCycleDayUTC, final int billCycleDayLocal, final String phone) { final String externalKey = UUID.randomUUID().toString(); final String email = UUID.randomUUID().toString().substring(0, 4) + '@' + UUID.randomUUID().toString().substring(0, 4); final String name = UUID.randomUUID().toString(); final String locale = Locale.GERMANY.toString(); final DateTimeZone timeZone = DateTimeZone.forID("America/Los_Angeles"); final int firstNameLength = name.length(); final Currency currency = Currency.MXN; final UUID paymentMethodId = UUID.randomUUID(); final String address1 = UUID.randomUUID().toString(); final String address2 = UUID.randomUUID().toString(); final String companyName = UUID.randomUUID().toString(); final String city = UUID.randomUUID().toString(); final String stateOrProvince = UUID.randomUUID().toString(); final String country = Locale.GERMANY.getCountry(); final String postalCode = UUID.randomUUID().toString().substring(0, 4); return new DefaultMutableAccountData(externalKey, email, name, firstNameLength, currency, billCycleDayLocal, paymentMethodId, timeZone, locale, address1, address2, companyName, city, stateOrProvince, country, postalCode, phone, false, true); } }