Skip to content

Commit

Permalink
✨ : add user information in stack lifecycle
Browse files Browse the repository at this point in the history
  • Loading branch information
cdubuisson committed Aug 9, 2019
1 parent a2ecf70 commit 4b5e74b
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 8 deletions.
49 changes: 49 additions & 0 deletions src/main/java/io/codeka/gaia/bo/Stack.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
package io.codeka.gaia.bo;

import io.codeka.gaia.teams.bo.Team;
import io.codeka.gaia.teams.bo.User;
import org.springframework.data.mongodb.core.mapping.DBRef;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;

Expand Down Expand Up @@ -52,6 +54,16 @@ public class Stack {

private BigDecimal estimatedRunningCost;

@DBRef
private User createdBy;

private LocalDateTime createdAt;

@DBRef
private User updatedBy;

private LocalDateTime updatedAt;

public String getId() {
return id;
}
Expand Down Expand Up @@ -112,11 +124,48 @@ public void setOwnerTeam(Team ownerTeam) {
this.ownerTeam = ownerTeam;
}

public Team getOwnerTeam() {
return ownerTeam;
}

public BigDecimal getEstimatedRunningCost() {
return estimatedRunningCost;
}

public void setEstimatedRunningCost(BigDecimal estimatedRunningCost) {
this.estimatedRunningCost = estimatedRunningCost;
}

public User getCreatedBy() {
return createdBy;
}

public void setCreatedBy(User createdBy) {
this.createdBy = createdBy;
}

public LocalDateTime getCreatedAt() {
return createdAt;
}

public void setCreatedAt(LocalDateTime createdAt) {
this.createdAt = createdAt;
}

public User getUpdatedBy() {
return updatedBy;
}

public void setUpdatedBy(User updatedBy) {
this.updatedBy = updatedBy;
}

public LocalDateTime getUpdatedAt() {
return updatedAt;
}

public void setUpdatedAt(LocalDateTime updatedAt) {
this.updatedAt = updatedAt;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.*;

import java.time.LocalDateTime;
import java.util.List;
import java.util.UUID;

Expand Down Expand Up @@ -48,14 +49,18 @@ public Stack getStack(@PathVariable String id, User user){
}

@PostMapping()
public Stack save(@RequestBody Stack stack, Team userTeam){
public Stack save(@RequestBody Stack stack, Team userTeam, User user){
stack.setOwnerTeam(userTeam);
stack.setId(UUID.randomUUID().toString());
stack.setCreatedBy(user);
stack.setCreatedAt(LocalDateTime.now());
return stackRepository.save(stack);
}

@PutMapping("/{id}")
public Stack update(@PathVariable String id, @RequestBody Stack stack){
public Stack update(@PathVariable String id, @RequestBody Stack stack, User user){
stack.setUpdatedBy(user);
stack.setUpdatedAt(LocalDateTime.now());
return stackRepository.save(stack);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,13 @@
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;

import java.time.LocalDateTime;
import java.util.Optional;

import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
Expand All @@ -28,8 +32,7 @@ class StackRestControllerTest {

private Team userTeam = new Team();

@Mock
private Stack stack;
private Stack stack = new Stack();

@InjectMocks
private StackRestController stackRestController;
Expand Down Expand Up @@ -114,20 +117,24 @@ void getStack_shouldThrowStackNotFoundException(){
@Test
void save_shouldSaveStack(){
// when
stackRestController.save(stack, userTeam);
stackRestController.save(stack, userTeam, standardUser);

// then
verify(stack).setId(anyString());
verify(stack).setOwnerTeam(userTeam);
assertThat(stack.getId()).isNotBlank();
assertThat(stack.getOwnerTeam()).isEqualTo(userTeam);
assertThat(stack.getCreatedBy()).isEqualTo(standardUser);
assertThat(stack.getCreatedAt()).isEqualToIgnoringSeconds(LocalDateTime.now());
verify(stackRepository).save(stack);
}

@Test
void update_shouldSaveStack(){
// when
stackRestController.update("12", stack);
stackRestController.update("12", stack, standardUser);

// then
assertThat(stack.getUpdatedBy()).isEqualTo(standardUser);
assertThat(stack.getUpdatedAt()).isEqualToIgnoringSeconds(LocalDateTime.now());
verify(stackRepository).save(stack);
}
}

0 comments on commit 4b5e74b

Please sign in to comment.