package com.hitherejoe.watchtower.util; import com.hitherejoe.watchtower.data.model.AdvertisedId; import com.hitherejoe.watchtower.data.model.Attachment; import com.hitherejoe.watchtower.data.model.Beacon; import com.hitherejoe.watchtower.data.model.Diagnostics; import com.hitherejoe.watchtower.data.model.LatLng; import com.hitherejoe.watchtower.data.model.Namespace; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.UUID; public class MockModelsUtil { public static String generateRandomString() { return UUID.randomUUID().toString(); } public static Beacon createMockUnregisteredBeacon() { Beacon beacon = new Beacon(); beacon.placeId = "1234"; beacon.status = Beacon.Status.ACTIVE; beacon.expectedStability = Beacon.Stability.MOBILE; beacon.description = "This is a description"; beacon.latLng = new LatLng(); beacon.latLng.latitude = 54.331; beacon.latLng.longitude = -12.435; beacon.advertisedId = new AdvertisedId("IDIDIDIDID", AdvertisedId.Type.EDDYSTONE); return beacon; } public static Beacon createMockRegisteredBeacon() { Beacon beacon = createMockUnregisteredBeacon(); beacon.beaconName = "beaconName/namenamename"; return beacon; } public static Beacon createMockIncompleteBeacon() { Beacon beacon = new Beacon(); beacon.beaconName = "beaconName/namenamename"; beacon.advertisedId = new AdvertisedId(); beacon.status = Beacon.Status.ACTIVE; beacon.advertisedId.id = "IDIDIDIDID"; return beacon; } public static Attachment createMockAttachment() { Attachment attachment = new Attachment(); attachment.namespacedType = "proximity-api/text"; attachment.data = "attachmentData"; return attachment; } public static Namespace createMockNamespace() { Namespace namespace = new Namespace(); namespace.namespaceName = "proximity-api"; namespace.servingVisibility = Namespace.Visibility.PUBLIC; return namespace; } public static Diagnostics createMockDiagnostics(String beaconName) { Diagnostics diagnostics = new Diagnostics(); diagnostics.beaconName = beaconName; Diagnostics.BeaconDate beaconDate = new Diagnostics.BeaconDate(); Random random = new Random(); beaconDate.day = random.nextInt(30); beaconDate.month = random.nextInt(12); beaconDate.year = random.nextInt(9999); diagnostics.estimatedLowBatteryDate = beaconDate; diagnostics.alerts = new Diagnostics.Alert[2]; diagnostics.alerts[0] = Diagnostics.Alert.LOW_BATTERY; diagnostics.alerts[1] = Diagnostics.Alert.WRONG_LOCATION; return diagnostics; } public static Diagnostics createMockEmptyDiagnostics(String beaconName) { Diagnostics diagnostics = new Diagnostics(); diagnostics.beaconName = beaconName; return diagnostics; } public static List<Namespace> createMockListOfNamespaces(int num) { ArrayList<Namespace> result = new ArrayList<>(); for (int i = 0; i < num; i++) { Namespace namespace = new Namespace(); namespace.namespaceName = "proximity-api/" + i; namespace.servingVisibility = Namespace.Visibility.PUBLIC; result.add(namespace); } return result; } public static List<Beacon> createMockListOfBeacons(int num) { ArrayList<Beacon> result = new ArrayList<>(); for (int i = 0; i < num; i++) { Beacon beacon = new Beacon(); beacon.beaconName = generateRandomString(); AdvertisedId advertisedId = new AdvertisedId(); advertisedId.type = AdvertisedId.Type.EDDYSTONE; advertisedId.id = generateRandomString(); beacon.advertisedId = advertisedId; beacon.description = "Descroption " + i; beacon.status = Beacon.Status.ACTIVE; beacon.expectedStability = Beacon.Stability.MOBILE; beacon.placeId = generateRandomString(); LatLng latLng = new LatLng(); latLng.latitude = 1.00 + num; latLng.longitude = 1.00 - num; beacon.latLng = latLng; result.add(beacon); } return result; } public static List<Attachment> createMockListOfAttachments(String beaconName, int num) { ArrayList<Attachment> result = new ArrayList<>(); for (int i = 0; i < num; i++) { Attachment attachment = new Attachment(); attachment.attachmentName = beaconName + "attachments/" + i; attachment.data = "Data"; attachment.namespacedType = "proximity-api/text"; result.add(attachment); } return result; } }