| 1 | /** | |
| 2 | * Copyright 2018 SmartBear Software | |
| 3 | * <p> | |
| 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | |
| 5 | * you may not use this file except in compliance with the License. | |
| 6 | * You may obtain a copy of the License at | |
| 7 | * <p> | |
| 8 | * http://www.apache.org/licenses/LICENSE-2.0 | |
| 9 | * <p> | |
| 10 | * Unless required by applicable law or agreed to in writing, software | |
| 11 | * distributed under the License is distributed on an "AS IS" BASIS, | |
| 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| 13 | * See the License for the specific language governing permissions and | |
| 14 | * limitations under the License. | |
| 15 | */ | |
| 16 | ||
| 17 | package io.swagger.petstore.data; | |
| 18 | ||
| 19 | import io.swagger.petstore.model.Address; | |
| 20 | import io.swagger.petstore.model.Customer; | |
| 21 | import io.swagger.petstore.model.Customer0; | |
| 22 | import io.swagger.petstore.model.Order; | |
| 23 | import io.swagger.petstore.model.Order0; | |
| 24 | import io.swagger.petstore.model.Pet; | |
| 25 | import io.swagger.petstore.model.QuantityByZip; | |
| 26 | ||
| 27 | import java.util.*; | |
| 28 | ||
| 29 | public class OrderData { | |
| 30 | private static List<Order> orders = new ArrayList<>(); | |
| 31 | // Add customer data (not included in the original version) | |
| 32 | private static List<Customer> customers = new ArrayList<>(); | |
| 33 | ||
| 34 | static { | |
| 35 | orders.add(createOrder(1, 1, 1, 100, new Date(), "placed", true)); | |
| 36 | orders.add(createOrder(2, 1, 1, 50, new Date(), "approved", true)); | |
| 37 | orders.add(createOrder(3, 1, 1, 50, new Date(), "delivered", true)); | |
| 38 | customers.add(createCustomer(1,"me")); | |
| 39 | } | |
| 40 | | |
| 41 | //Added methods for test | |
| 42 | | |
| 43 | public List<Order> getOrders() { | |
| 44 | return orders; | |
| 45 | } | |
| 46 | ||
| 47 | public List<Customer> getCustomers() { | |
| 48 | return customers; | |
| 49 | } | |
| 50 | ||
| 51 | public void deleteAll() { | |
| 52 | orders = new ArrayList<>(); | |
| 53 | customers = new ArrayList<>(); | |
| 54 | } | |
| 55 | | |
| 56 | public void addOrder0(final Order0 order) { | |
| 57 | if (orders.size() > 0) { | |
| 58 |
2
1. lambda$addOrder0$0 : negated conditional → NO_COVERAGE 2. lambda$addOrder0$0 : replaced boolean return with true for io/swagger/petstore/data/OrderData::lambda$addOrder0$0 → NO_COVERAGE |
orders.removeIf(orderN -> orderN.getId() == order.getId()); |
| 59 | } | |
| 60 | orders.add(createOrder(order.getId(), order.getPetId(), order.getCustomerId(), order.getQuantity(), order.getShipDate(), | |
| 61 | order.getStatus(), order.isComplete())); | |
| 62 | } | |
| 63 | ||
| 64 | public static Order0 createOrder0(final long id, final long petId, final long customerId, final int quantity, final Date shipDate, | |
| 65 | final String status, final boolean complete) { | |
| 66 | final Order0 order = new Order0(); | |
| 67 | order.setId(id); | |
| 68 | order.setPetId(petId); | |
| 69 | order.setCustomerId(customerId); | |
| 70 | order.setComplete(complete); | |
| 71 | order.setQuantity(quantity); | |
| 72 | order.setShipDate(shipDate); | |
| 73 | order.setStatus(status); | |
| 74 | return order; | |
| 75 | } | |
| 76 | ||
| 77 | public void addCustomer0(final Customer0 customer) { | |
| 78 | if (customers.size() > 0) { | |
| 79 |
2
1. lambda$addCustomer0$1 : replaced boolean return with true for io/swagger/petstore/data/OrderData::lambda$addCustomer0$1 → NO_COVERAGE 2. lambda$addCustomer0$1 : negated conditional → NO_COVERAGE |
customers.removeIf(customerN -> customerN.getId() == customer.getId()); |
| 80 | } | |
| 81 | customers.add(createCustomer(customer.getId(), customer.getUsername())); | |
| 82 | } | |
| 83 | ||
| 84 | //Customer does not have methods to create from the api, include here | |
| 85 | | |
| 86 | public void addCustomer(final Customer customer) { | |
| 87 | if (customers.size() > 0) { | |
| 88 |
2
1. lambda$addCustomer$2 : negated conditional → KILLED 2. lambda$addCustomer$2 : replaced boolean return with true for io/swagger/petstore/data/OrderData::lambda$addCustomer$2 → KILLED |
customers.removeIf(customerN -> customerN.getId() == customer.getId()); |
| 89 | } | |
| 90 | customers.add(customer); | |
| 91 | } | |
| 92 | ||
| 93 | public static Customer createCustomer(final long id, String username) { | |
| 94 | final Customer customer = new Customer(); | |
| 95 | customer.setId(id); | |
| 96 | customer.setUsername(username); | |
| 97 | return customer; | |
| 98 | } | |
| 99 | | |
| 100 | //End added methods for test | |
| 101 | ||
| 102 | public Order getOrderById(final long orderId) { | |
| 103 | for (final Order order : orders) { | |
| 104 | if (order.getId() == orderId) { | |
| 105 | return order; | |
| 106 | } | |
| 107 | } | |
| 108 | return null; | |
| 109 | } | |
| 110 | ||
| 111 | public Map<String, Integer> getCountByStatus() { | |
| 112 | ||
| 113 | final Map<String, Integer> countByStatus = new HashMap<>(); | |
| 114 | ||
| 115 | for (final Order order : orders) { | |
| 116 | final String status = order.getStatus(); | |
| 117 | if (countByStatus.containsKey(status)) { | |
| 118 | countByStatus.put(status, countByStatus.get(status) + order.getQuantity()); | |
| 119 | } else { | |
| 120 | countByStatus.put(status, order.getQuantity()); | |
| 121 | } | |
| 122 | } | |
| 123 | ||
| 124 | return countByStatus; | |
| 125 | } | |
| 126 | ||
| 127 | // Add methods to support other queries | |
| 128 | | |
| 129 | public List<Order> findOrdersByCategoryAndOrderStatus(final String category, final String status) { | |
| 130 | final List<Order> result = new ArrayList<>(); | |
| 131 | for (final Order order: orders) { | |
| 132 |
1
1. findOrdersByCategoryAndOrderStatus : negated conditional → KILLED |
if (order.getStatus().equals(status)) { |
| 133 | final long petId = order.getPetId(); | |
| 134 | for (final Pet pet : new PetData().getPets()) | |
| 135 |
1
1. findOrdersByCategoryAndOrderStatus : negated conditional → KILLED |
if (pet.getId() == petId) { |
| 136 |
1
1. findOrdersByCategoryAndOrderStatus : negated conditional → KILLED |
if (pet.getCategory().getName().equals(category)) |
| 137 | result.add(order); | |
| 138 | } | |
| 139 | } | |
| 140 | } | |
| 141 |
1
1. findOrdersByCategoryAndOrderStatus : replaced return value with Collections.emptyList for io/swagger/petstore/data/OrderData::findOrdersByCategoryAndOrderStatus → KILLED |
return result; |
| 142 | } | |
| 143 | ||
| 144 | public List<QuantityByZip> totalPetsToDeliverByAddress() { | |
| 145 | final TreeMap<String, Long> result = new TreeMap<>(); | |
| 146 | for (final Customer customer: customers) | |
| 147 |
1
1. totalPetsToDeliverByAddress : negated conditional → KILLED |
if (customer.getAddress() != null) |
| 148 | for (final Address address: customer.getAddress()) { // collect zips | |
| 149 | String zip = address.getZip(); | |
| 150 |
1
1. totalPetsToDeliverByAddress : negated conditional → KILLED |
if (!result.containsKey(zip)) |
| 151 | result.put(zip, (long) 0); // new zip | |
| 152 | // count all orders of this customer and add to this zip | |
| 153 | for (final Order order: orders) | |
| 154 |
2
1. totalPetsToDeliverByAddress : negated conditional → KILLED 2. totalPetsToDeliverByAddress : negated conditional → KILLED |
if (order.getCustomerId() == customer.getId() && "approved".equals(order.getStatus())) |
| 155 |
1
1. totalPetsToDeliverByAddress : Replaced long addition with subtraction → KILLED |
result.put(zip, result.get(zip) + order.getQuantity()); |
| 156 | } | |
| 157 | List<QuantityByZip> resultDto = new ArrayList<>(); | |
| 158 | for (Map.Entry<String, Long> entry : result.entrySet()) | |
| 159 | resultDto.add(new QuantityByZip(entry.getKey(), entry.getValue())); | |
| 160 |
1
1. totalPetsToDeliverByAddress : replaced return value with Collections.emptyList for io/swagger/petstore/data/OrderData::totalPetsToDeliverByAddress → KILLED |
return resultDto; |
| 161 | } | |
| 162 | ||
| 163 | public List<Order> updateDeliveryToCustomer(long customerId) { | |
| 164 | final List<Order> result = new ArrayList<>(); | |
| 165 | for (final Order order: orders) { | |
| 166 |
2
1. updateDeliveryToCustomer : negated conditional → SURVIVED 2. updateDeliveryToCustomer : negated conditional → SURVIVED |
if ("approved".equals(order.getStatus()) && order.getCustomerId() == customerId) { |
| 167 |
1
1. updateDeliveryToCustomer : removed call to io/swagger/petstore/model/Order::setStatus → SURVIVED |
order.setStatus("delivered"); |
| 168 | result.add(order); | |
| 169 | } | |
| 170 | } | |
| 171 |
1
1. updateDeliveryToCustomer : replaced return value with Collections.emptyList for io/swagger/petstore/data/OrderData::updateDeliveryToCustomer → SURVIVED |
return result; |
| 172 | } | |
| 173 | ||
| 174 | // End added methods | |
| 175 | ||
| 176 | public void addOrder(final Order order) { | |
| 177 | if (orders.size() > 0) { | |
| 178 |
2
1. lambda$addOrder$3 : negated conditional → KILLED 2. lambda$addOrder$3 : replaced boolean return with true for io/swagger/petstore/data/OrderData::lambda$addOrder$3 → KILLED |
orders.removeIf(orderN -> orderN.getId() == order.getId()); |
| 179 | } | |
| 180 | orders.add(order); | |
| 181 | } | |
| 182 | ||
| 183 | public void deleteOrderById(final Long orderId) { | |
| 184 |
2
1. lambda$deleteOrderById$4 : replaced boolean return with true for io/swagger/petstore/data/OrderData::lambda$deleteOrderById$4 → NO_COVERAGE 2. lambda$deleteOrderById$4 : negated conditional → NO_COVERAGE |
orders.removeIf(order -> order.getId() == orderId); |
| 185 | } | |
| 186 | ||
| 187 | public static Order createOrder(final long id, final long petId, final long customerId, final int quantity, final Date shipDate, | |
| 188 | final String status, final boolean complete) { | |
| 189 | final Order order = new Order(); | |
| 190 | order.setId(id); | |
| 191 | order.setPetId(petId); | |
| 192 | order.setCustomerId(customerId); | |
| 193 | order.setComplete(complete); | |
| 194 | order.setQuantity(quantity); | |
| 195 | order.setShipDate(shipDate); | |
| 196 | order.setStatus(status); | |
| 197 | return order; | |
| 198 | } | |
| 199 | } | |
Mutations | ||
| 58 |
1.1 2.2 |
|
| 79 |
1.1 2.2 |
|
| 88 |
1.1 2.2 |
|
| 132 |
1.1 |
|
| 135 |
1.1 |
|
| 136 |
1.1 |
|
| 141 |
1.1 |
|
| 147 |
1.1 |
|
| 150 |
1.1 |
|
| 154 |
1.1 2.2 |
|
| 155 |
1.1 |
|
| 160 |
1.1 |
|
| 166 |
1.1 2.2 |
|
| 167 |
1.1 |
|
| 171 |
1.1 |
|
| 178 |
1.1 2.2 |
|
| 184 |
1.1 2.2 |