Skip to content

Commit 0c2d250

Browse files
authored
Merge pull request #62 from Resellio/fix/nullable-last-name
[BUG] Nullable user LastName
2 parents 9c672c5 + 79227e9 commit 0c2d250

File tree

7 files changed

+518
-37
lines changed

7 files changed

+518
-37
lines changed

TickAPI/TickAPI.Tests/Customers/Services/CustomerServiceTests.cs

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,34 @@ public async Task CreateNewCustomerAsync_WhenCustomerWithUniqueEmail_ShouldRetur
7171
Assert.Equal(createdAt, result.Value!.CreationDate);
7272
Assert.Equal(id, result.Value!.Id);
7373
}
74+
75+
[Fact]
76+
public async Task CreateNewCustomerAsync_WhenLastNameIsNull_ShouldReturnNewCustomer()
77+
{
78+
const string email = "new@customer.com";
79+
const string firstName = "First";
80+
const string lastName = null;
81+
Guid id = Guid.NewGuid();
82+
DateTime createdAt = new DateTime(1970, 1, 1, 8, 0, 0, DateTimeKind.Utc);
83+
var dateTimeServiceMock = new Mock<IDateTimeService>();
84+
dateTimeServiceMock.Setup(m => m.GetCurrentDateTime()).Returns(createdAt);
85+
var customerRepositoryMock = new Mock<ICustomerRepository>();
86+
customerRepositoryMock.Setup(m => m.GetCustomerByEmailAsync(email)).ReturnsAsync(Result<Customer>.Failure(StatusCodes.Status404NotFound, $"customer with email '{email}' not found"));
87+
customerRepositoryMock
88+
.Setup(m => m.AddNewCustomerAsync(It.IsAny<Customer>()))
89+
.Callback<Customer>(c => c.Id = id)
90+
.Returns(Task.CompletedTask);
91+
var sut = new CustomerService(customerRepositoryMock.Object, dateTimeServiceMock.Object);
92+
93+
var result = await sut.CreateNewCustomerAsync(email, firstName, lastName);
94+
95+
Assert.True(result.IsSuccess);
96+
Assert.Equal(email, result.Value!.Email);
97+
Assert.Equal(firstName, result.Value!.FirstName);
98+
Assert.Equal(lastName, result.Value!.LastName);
99+
Assert.Equal(createdAt, result.Value!.CreationDate);
100+
Assert.Equal(id, result.Value!.Id);
101+
}
74102

75103
[Fact]
76104
public async Task CreateNewCustomerAsync_WhenCustomerWithNotUniqueEmail_ShouldReturnFailure()

TickAPI/TickAPI.Tests/Organizers/Services/OrganizerServiceTests.cs

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,50 @@ public async Task CreateNewOrganizerAsync_WhenOrganizerDataIsValid_ShouldReturnN
112112
Assert.False(result.Value!.IsVerified);
113113
Assert.Equal(currentDate, result.Value!.CreationDate);
114114
}
115+
116+
[Fact]
117+
public async Task CreateNewOrganizerAsync_WhenLastNameIsNull_ShouldReturnNewOrganizer()
118+
{
119+
// Arrange
120+
Guid id = Guid.NewGuid();
121+
const string email = "example@test.com";
122+
const string firstName = "First";
123+
const string lastName = null;
124+
const string displayName = "Display";
125+
DateTime currentDate = new DateTime(1970, 1, 1, 8, 0, 0, DateTimeKind.Utc);
126+
127+
var organizerRepositoryMock = new Mock<IOrganizerRepository>();
128+
organizerRepositoryMock
129+
.Setup(m => m.GetOrganizerByEmailAsync(email))
130+
.ReturnsAsync(Result<Organizer>.Failure(StatusCodes.Status404NotFound, $"organizer with email '{email}' not found"));
131+
organizerRepositoryMock
132+
.Setup(m => m.AddNewOrganizerAsync(It.IsAny<Organizer>()))
133+
.Callback<Organizer>(o => o.Id = id)
134+
.Returns(Task.CompletedTask);
135+
136+
var dateTimeServiceMock = new Mock<IDateTimeService>();
137+
dateTimeServiceMock
138+
.Setup(m => m.GetCurrentDateTime())
139+
.Returns(currentDate);
140+
141+
var sut = new OrganizerService(
142+
organizerRepositoryMock.Object,
143+
dateTimeServiceMock.Object
144+
);
145+
146+
// Act
147+
var result = await sut.CreateNewOrganizerAsync(email, firstName, lastName, displayName);
148+
149+
// Assert
150+
Assert.True(result.IsSuccess);
151+
Assert.Equal(id, result.Value!.Id);
152+
Assert.Equal(email, result.Value!.Email);
153+
Assert.Equal(firstName, result.Value!.FirstName);
154+
Assert.Equal(lastName, result.Value!.LastName);
155+
Assert.Equal(displayName, result.Value!.DisplayName);
156+
Assert.False(result.Value!.IsVerified);
157+
Assert.Equal(currentDate, result.Value!.CreationDate);
158+
}
115159

116160
[Fact]
117161
public async Task CreateNewOrganizerAsync_WhenWithNotUniqueEmail_ShouldReturnFailure()

TickAPI/TickAPI/Customers/Models/Customer.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ public class Customer
77
public Guid Id { get; set; }
88
public string Email { get; set; }
99
public string FirstName { get; set; }
10-
public string LastName { get; set; }
10+
public string? LastName { get; set; }
1111
public DateTime CreationDate { get; set; }
1212
public ICollection<Ticket> Tickets { get; set; }
1313
}

0 commit comments

Comments
 (0)