Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
O
Orders
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Vladimir Trubachoff
Orders
Commits
d023b1e8
Commit
d023b1e8
authored
Jul 23, 2024
by
Vladimir Trubachoff
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Added OrderLineRepositoryTest, OrderLineServiceTest, OrderLineControllerTest
parent
371f77f3
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
280 additions
and
10 deletions
+280
-10
OrderLine.java
src/main/java/com/example/testj/domain/OrderLine.java
+6
-1
OrderLineService.java
...main/java/com/example/testj/service/OrderLineService.java
+1
-1
OrderLineDto.java
...main/java/com/example/testj/service/dto/OrderLineDto.java
+8
-3
OrderLineRequestDto.java
...va/com/example/testj/service/dto/OrderLineRequestDto.java
+7
-0
OrderLineServiceImpl.java
.../com/example/testj/service/impl/OrderLineServiceImpl.java
+3
-2
OrderLineMapper.java
...ava/com/example/testj/service/mapper/OrderLineMapper.java
+2
-1
OrderLineController.java
.../java/com/example/testj/web/rest/OrderLineController.java
+3
-2
OrderLineRepositoryTest.java
...com/example/testj/repository/OrderLineRepositoryTest.java
+84
-0
OrderLineServiceTest.java
.../java/com/example/testj/service/OrderLineServiceTest.java
+32
-0
OrderLineControllerTest.java
...a/com/example/testj/web/rest/OrderLineControllerTest.java
+134
-0
No files found.
src/main/java/com/example/testj/domain/OrderLine.java
View file @
d023b1e8
...
@@ -3,7 +3,10 @@ package com.example.testj.domain;
...
@@ -3,7 +3,10 @@ package com.example.testj.domain;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
jakarta.persistence.*
;
import
jakarta.persistence.*
;
import
jakarta.validation.constraints.Min
;
import
jakarta.validation.constraints.Min
;
import
lombok.*
;
import
jakarta.validation.constraints.NotNull
;
import
lombok.Getter
;
import
lombok.RequiredArgsConstructor
;
import
lombok.Setter
;
import
org.springframework.format.annotation.NumberFormat
;
import
org.springframework.format.annotation.NumberFormat
;
@Getter
@Getter
...
@@ -20,10 +23,12 @@ public class OrderLine {
...
@@ -20,10 +23,12 @@ public class OrderLine {
@JsonIgnore
@JsonIgnore
@ManyToOne
@ManyToOne
@JoinColumn
(
name
=
"order_id"
)
@JoinColumn
(
name
=
"order_id"
)
@NotNull
private
Order
order
;
private
Order
order
;
@ManyToOne
@ManyToOne
@JoinColumn
(
name
=
"goods_id"
)
@JoinColumn
(
name
=
"goods_id"
)
@NotNull
private
Goods
goods
;
private
Goods
goods
;
@Column
(
name
=
"count"
)
@Column
(
name
=
"count"
)
...
...
src/main/java/com/example/testj/service/OrderLineService.java
View file @
d023b1e8
...
@@ -10,7 +10,7 @@ public interface OrderLineService {
...
@@ -10,7 +10,7 @@ public interface OrderLineService {
OrderLineDto
createOrderLine
(
OrderLineRequestDto
orderLineRequest
);
OrderLineDto
createOrderLine
(
OrderLineRequestDto
orderLineRequest
);
OrderLineDto
updateOrderLine
(
OrderLine
orderLine
,
Long
id
);
OrderLineDto
updateOrderLine
(
OrderLine
orderLine
);
void
deleteOrderLine
(
Long
id
);
void
deleteOrderLine
(
Long
id
);
}
}
src/main/java/com/example/testj/service/dto/OrderLineDto.java
View file @
d023b1e8
...
@@ -3,6 +3,7 @@ package com.example.testj.service.dto;
...
@@ -3,6 +3,7 @@ package com.example.testj.service.dto;
import
jakarta.validation.constraints.Positive
;
import
jakarta.validation.constraints.Positive
;
import
lombok.AllArgsConstructor
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
import
lombok.Setter
;
import
lombok.Setter
;
import
java.io.Serializable
;
import
java.io.Serializable
;
...
@@ -11,13 +12,17 @@ import java.io.Serializable;
...
@@ -11,13 +12,17 @@ import java.io.Serializable;
* DTO for {@link com.example.testj.domain.OrderLine}
* DTO for {@link com.example.testj.domain.OrderLine}
*/
*/
@AllArgsConstructor
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Getter
@Setter
@Setter
public
class
OrderLineDto
implements
Serializable
{
public
class
OrderLineDto
implements
Serializable
{
private
final
Long
id
;
private
Long
id
;
private
final
GoodsDto
goods
;
private
GoodsDto
goods
;
// @JsonIgnore
// private OrderDto order;
@Positive
@Positive
private
final
int
count
;
private
int
count
;
}
}
src/main/java/com/example/testj/service/dto/OrderLineRequestDto.java
View file @
d023b1e8
package
com
.
example
.
testj
.
service
.
dto
;
package
com
.
example
.
testj
.
service
.
dto
;
import
jakarta.validation.constraints.NotNull
;
import
jakarta.validation.constraints.Positive
;
import
lombok.Getter
;
import
lombok.Getter
;
import
lombok.Setter
;
import
lombok.Setter
;
@Getter
@Getter
@Setter
@Setter
public
class
OrderLineRequestDto
{
public
class
OrderLineRequestDto
{
@NotNull
private
Long
orderId
;
private
Long
orderId
;
@NotNull
private
Long
goodsId
;
private
Long
goodsId
;
@Positive
private
int
count
;
private
int
count
;
}
}
src/main/java/com/example/testj/service/impl/OrderLineServiceImpl.java
View file @
d023b1e8
...
@@ -31,6 +31,7 @@ public class OrderLineServiceImpl implements OrderLineService {
...
@@ -31,6 +31,7 @@ public class OrderLineServiceImpl implements OrderLineService {
public
OrderLineDto
createOrderLine
(
OrderLineRequestDto
orderLineRequest
)
{
public
OrderLineDto
createOrderLine
(
OrderLineRequestDto
orderLineRequest
)
{
OrderDto
order
=
orderService
.
getOrder
(
orderLineRequest
.
getOrderId
());
OrderDto
order
=
orderService
.
getOrder
(
orderLineRequest
.
getOrderId
());
GoodsDto
goods
=
goodsService
.
getGoods
(
orderLineRequest
.
getGoodsId
());
GoodsDto
goods
=
goodsService
.
getGoods
(
orderLineRequest
.
getGoodsId
());
OrderLine
orderLine
=
new
OrderLine
();
OrderLine
orderLine
=
new
OrderLine
();
orderLine
.
setOrder
(
orderMapper
.
toEntity
(
order
));
orderLine
.
setOrder
(
orderMapper
.
toEntity
(
order
));
orderLine
.
setGoods
(
goodsMapper
.
toEntity
(
goods
));
orderLine
.
setGoods
(
goodsMapper
.
toEntity
(
goods
));
...
@@ -40,8 +41,8 @@ public class OrderLineServiceImpl implements OrderLineService {
...
@@ -40,8 +41,8 @@ public class OrderLineServiceImpl implements OrderLineService {
}
}
@Override
@Override
public
OrderLineDto
updateOrderLine
(
OrderLine
orderLine
,
Long
id
)
{
public
OrderLineDto
updateOrderLine
(
OrderLine
orderLine
)
{
OrderLine
updatedOrderLine
=
orderLineRepository
.
findById
(
id
).
orElseThrow
(
ResourceNotFoundException:
:
new
);
OrderLine
updatedOrderLine
=
orderLineRepository
.
findById
(
orderLine
.
getId
()
).
orElseThrow
(
ResourceNotFoundException:
:
new
);
updatedOrderLine
.
setCount
(
orderLine
.
getCount
());
updatedOrderLine
.
setCount
(
orderLine
.
getCount
());
return
orderLineMapper
.
toDto
(
orderLineRepository
.
save
(
updatedOrderLine
));
return
orderLineMapper
.
toDto
(
orderLineRepository
.
save
(
updatedOrderLine
));
}
}
...
...
src/main/java/com/example/testj/service/mapper/OrderLineMapper.java
View file @
d023b1e8
...
@@ -3,8 +3,9 @@ package com.example.testj.service.mapper;
...
@@ -3,8 +3,9 @@ package com.example.testj.service.mapper;
import
com.example.testj.domain.OrderLine
;
import
com.example.testj.domain.OrderLine
;
import
com.example.testj.service.dto.OrderLineDto
;
import
com.example.testj.service.dto.OrderLineDto
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.Mapper
;
import
org.mapstruct.ReportingPolicy
;
@Mapper
(
componentModel
=
"spring"
)
@Mapper
(
componentModel
=
"spring"
,
unmappedTargetPolicy
=
ReportingPolicy
.
IGNORE
)
public
interface
OrderLineMapper
{
public
interface
OrderLineMapper
{
OrderLineDto
toDto
(
OrderLine
orderLine
);
OrderLineDto
toDto
(
OrderLine
orderLine
);
OrderLine
toEntity
(
OrderLineDto
orderLineDto
);
OrderLine
toEntity
(
OrderLineDto
orderLineDto
);
...
...
src/main/java/com/example/testj/web/rest/OrderLineController.java
View file @
d023b1e8
...
@@ -25,13 +25,14 @@ public class OrderLineController {
...
@@ -25,13 +25,14 @@ public class OrderLineController {
}
}
@PostMapping
@PostMapping
@ResponseStatus
(
HttpStatus
.
CREATED
)
public
OrderLineDto
create
(
@Valid
@RequestBody
OrderLineRequestDto
orderLineRequest
)
{
public
OrderLineDto
create
(
@Valid
@RequestBody
OrderLineRequestDto
orderLineRequest
)
{
return
orderLineService
.
createOrderLine
(
orderLineRequest
);
return
orderLineService
.
createOrderLine
(
orderLineRequest
);
}
}
@PutMapping
(
"/{id}"
)
@PutMapping
(
"/{id}"
)
public
OrderLineDto
update
Order
(
@PathVariable
Long
id
,
@Valid
@RequestBody
OrderLineDto
orderLine
)
{
public
OrderLineDto
update
(
@PathVariable
Long
id
,
@Valid
@RequestBody
OrderLineDto
orderLine
)
{
return
orderLineService
.
updateOrderLine
(
orderLineMapper
.
toEntity
(
orderLine
)
,
id
);
return
orderLineService
.
updateOrderLine
(
orderLineMapper
.
toEntity
(
orderLine
));
}
}
@DeleteMapping
(
"/{id}"
)
@DeleteMapping
(
"/{id}"
)
...
...
src/test/java/com/example/testj/repository/OrderLineRepositoryTest.java
0 → 100644
View file @
d023b1e8
package
com
.
example
.
testj
.
repository
;
import
com.example.testj.domain.Goods
;
import
com.example.testj.domain.Order
;
import
com.example.testj.domain.OrderLine
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest
;
import
org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager
;
import
org.springframework.test.context.ActiveProfiles
;
import
java.util.List
;
import
java.util.stream.StreamSupport
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.*;
@DataJpaTest
@ActiveProfiles
(
"test"
)
public
class
OrderLineRepositoryTest
{
@Autowired
OrderLineRepository
orderLineRepository
;
@Autowired
TestEntityManager
entityManager
;
@Test
void
testFindById
()
{
// given
Long
id
=
1L
;
// when
OrderLine
found
=
orderLineRepository
.
findById
(
id
).
orElse
(
null
);
// then
assertNotNull
(
found
);
assertEquals
(
found
.
getId
(),
id
);
}
@Test
void
testSave
()
{
// given
OrderLine
orderLine
=
new
OrderLine
();
Order
order
=
new
Order
();
order
.
setId
(
1L
);
Goods
goods
=
new
Goods
();
goods
.
setId
(
1L
);
orderLine
.
setOrder
(
order
);
orderLine
.
setGoods
(
goods
);
orderLine
.
setCount
(
100
);
// when
orderLineRepository
.
save
(
orderLine
);
// then
assertNotNull
(
orderLine
.
getId
());
assertEquals
(
entityManager
.
find
(
OrderLine
.
class
,
orderLine
.
getId
()),
orderLine
);
}
@Test
void
testUpdate
()
{
// given
Long
id
=
1L
;
OrderLine
orderLine
=
entityManager
.
find
(
OrderLine
.
class
,
id
);
orderLine
.
setCount
(
10
);
// when
orderLineRepository
.
save
(
orderLine
);
// then
assertEquals
(
entityManager
.
find
(
OrderLine
.
class
,
id
),
orderLine
);
}
@Test
void
testDelete
()
{
// given
Long
id
=
1L
;
// when
orderLineRepository
.
deleteById
(
id
);
// then
assertNull
(
entityManager
.
find
(
OrderLine
.
class
,
id
));
}
@Test
void
testFindAll
()
{
// when
List
<
OrderLine
>
orderLineList
=
StreamSupport
.
stream
(
orderLineRepository
.
findAll
().
spliterator
(),
false
).
toList
();
// then
assertNotNull
(
orderLineList
);
assertEquals
(
100
,
orderLineList
.
size
());
}
}
src/test/java/com/example/testj/service/OrderLineServiceTest.java
0 → 100644
View file @
d023b1e8
package
com
.
example
.
testj
.
service
;
import
com.example.testj.repository.OrderLineRepository
;
import
com.example.testj.service.mapper.OrderLineMapper
;
import
org.junit.jupiter.api.Test
;
import
org.mapstruct.factory.Mappers
;
import
org.mockito.InjectMocks
;
import
org.mockito.Mock
;
import
org.mockito.Spy
;
public
class
OrderLineServiceTest
{
@InjectMocks
private
OrderLineService
orderLineService
;
@Mock
private
OrderLineRepository
orderLineRepository
;
@Spy
private
OrderLineMapper
orderLineMapper
=
Mappers
.
getMapper
(
OrderLineMapper
.
class
);
@Test
void
testCreateOrderLine
()
{}
@Test
void
testUpdateOrderLine
()
{}
@Test
void
testGetOrderLine
()
{}
@Test
void
testDeleteOrderLine
()
{}
}
src/test/java/com/example/testj/web/rest/OrderLineControllerTest.java
0 → 100644
View file @
d023b1e8
package
com
.
example
.
testj
.
web
.
rest
;
import
com.example.testj.domain.Goods
;
import
com.example.testj.domain.Order
;
import
com.example.testj.domain.OrderLine
;
import
com.example.testj.exception.ResourceNotFoundException
;
import
com.example.testj.service.OrderLineService
;
import
com.example.testj.service.dto.GoodsDto
;
import
com.example.testj.service.dto.OrderLineDto
;
import
com.example.testj.service.dto.OrderLineRequestDto
;
import
com.example.testj.service.mapper.OrderLineMapper
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
org.junit.jupiter.api.DisplayName
;
import
org.junit.jupiter.api.Test
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.mock.mockito.MockBean
;
import
org.springframework.http.MediaType
;
import
org.springframework.test.web.servlet.MockMvc
;
import
static
org
.
mockito
.
Mockito
.
doNothing
;
import
static
org
.
mockito
.
Mockito
.
when
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
request
.
MockMvcRequestBuilders
.*;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
jsonPath
;
import
static
org
.
springframework
.
test
.
web
.
servlet
.
result
.
MockMvcResultMatchers
.
status
;
@SpringBootTest
@AutoConfigureMockMvc
//@WebMvcTest(OrderLineController.class)
public
class
OrderLineControllerTest
{
@Autowired
private
MockMvc
mvc
;
@MockBean
private
OrderLineService
orderLineService
;
@MockBean
private
OrderLineMapper
orderLineMapper
;
@Test
@DisplayName
(
"GET /api/order-line/:id [200 OK]"
)
void
testGetOrderLine
()
throws
Exception
{
Long
id
=
1L
;
GoodsDto
goodsDto
=
new
GoodsDto
(
1L
,
"product 1"
,
100.00f
);
OrderLineDto
orderLineDto
=
new
OrderLineDto
();
orderLineDto
.
setId
(
id
);
orderLineDto
.
setCount
(
10
);
orderLineDto
.
setGoods
(
goodsDto
);
when
(
orderLineService
.
getOrderLine
(
id
)).
thenReturn
(
orderLineDto
);
mvc
.
perform
(
get
(
"/api/order-line/{id}"
,
id
).
contentType
(
MediaType
.
APPLICATION_JSON
))
.
andExpect
(
status
().
isOk
())
.
andExpect
(
jsonPath
(
"$.id"
).
value
(
id
))
.
andExpect
(
jsonPath
(
"$.count"
).
value
(
orderLineDto
.
getCount
()))
.
andExpect
(
jsonPath
(
"$.goods.id"
).
value
(
goodsDto
.
getId
()));
}
@Test
@DisplayName
(
"GET /api/order-line/:id [404 Not Found]"
)
void
testGetOrderLineNotFound
()
throws
Exception
{
Long
id
=
999L
;
when
(
orderLineService
.
getOrderLine
(
id
)).
thenThrow
(
new
ResourceNotFoundException
());
mvc
.
perform
(
get
(
"/api/order-line/{id}"
,
id
).
contentType
(
MediaType
.
APPLICATION_JSON
))
.
andExpect
(
status
().
isNotFound
());
}
@Test
@DisplayName
(
"POST /api/order-line [201 Created]"
)
void
testCreateOrderLine
()
throws
Exception
{
Goods
goods
=
new
Goods
();
goods
.
setId
(
1L
);
goods
.
setName
(
"product 1"
);
goods
.
setPrice
(
100.00
);
Order
order
=
new
Order
();
order
.
setId
(
1L
);
OrderLine
orderLine
=
new
OrderLine
();
orderLine
.
setOrder
(
order
);
orderLine
.
setGoods
(
goods
);
orderLine
.
setCount
(
10
);
OrderLineRequestDto
requestDto
=
new
OrderLineRequestDto
();
requestDto
.
setGoodsId
(
orderLine
.
getGoods
().
getId
());
requestDto
.
setOrderId
(
orderLine
.
getOrder
().
getId
());
requestDto
.
setCount
(
orderLine
.
getCount
());
String
body
=
new
ObjectMapper
().
writeValueAsString
(
requestDto
);
Long
nextId
=
2L
;
orderLine
.
setId
(
nextId
);
OrderLineDto
orderLineDto
=
orderLineMapper
.
toDto
(
orderLine
);
// OrderLineDto orderLineDto = new OrderLineDto(nextId, new GoodsDto(1L, "product 1", 100.00), 10);
when
(
orderLineService
.
createOrderLine
(
requestDto
)).
thenReturn
(
orderLineDto
);
mvc
.
perform
(
post
(
"/api/order-line"
).
contentType
(
MediaType
.
APPLICATION_JSON
).
content
(
body
))
.
andExpect
(
status
().
isCreated
())
.
andReturn
();
// .andExpectAll(
// content().contentType(MediaType. APPLICATION_JSON),
// jsonPath("$.id").value(orderLineDto.getId()),
// jsonPath("$.count").value(orderLineDto.getCount()));
}
@Test
@DisplayName
(
"PUT /api/order-line/:id [200 OK]"
)
void
testUpdateOrderLine
()
throws
Exception
{
Long
id
=
1L
;
OrderLineDto
orderLineDto
=
new
OrderLineDto
();
orderLineDto
.
setId
(
id
);
orderLineDto
.
setCount
(
100
);
OrderLineRequestDto
orderLineRequest
=
new
OrderLineRequestDto
();
orderLineRequest
.
setCount
(
orderLineDto
.
getCount
());
String
body
=
new
ObjectMapper
().
writeValueAsString
(
orderLineRequest
);
when
(
orderLineService
.
updateOrderLine
(
orderLineMapper
.
toEntity
(
orderLineDto
))).
thenReturn
(
orderLineDto
);
mvc
.
perform
(
put
(
"/api/order-line/{id}"
,
id
)
.
contentType
(
MediaType
.
APPLICATION_JSON
)
.
content
(
body
))
.
andExpect
(
status
().
isOk
())
.
andExpect
(
jsonPath
(
"$.count"
).
value
(
orderLineDto
.
getCount
()));
}
@Test
@DisplayName
(
"DELETE /api/order-line/:id [200 OK]"
)
void
testDeleteOrderLine
()
throws
Exception
{
Long
id
=
1L
;
doNothing
().
when
(
orderLineService
).
deleteOrderLine
(
id
);
mvc
.
perform
(
delete
(
"/api/order-line/{id}"
,
id
).
contentType
(
MediaType
.
APPLICATION_JSON
))
.
andExpect
(
status
().
isOk
());
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment