Make testing name scheme consistent (#395)

* Updating CahceHelperTests names

* Updating OrdersTests names

* Removing tests for "Include" functionality as it lives in a NuGet Package now

* Updating Integration Test anems
This commit is contained in:
Eric Fleming
2020-06-14 20:55:00 -04:00
committed by GitHub
parent 248b8ed632
commit 18589f9a73
17 changed files with 26 additions and 349 deletions

View File

@@ -1,16 +0,0 @@
using System;
namespace Microsoft.eShopWeb.UnitTests.ApplicationCore.Helpers.Query
{
public class Book
{
public string Title { get; set; }
public DateTime PublishingDate { get; set; }
public Person Author { get; set; }
public int GetNumberOfSales()
{
return 0;
}
}
}

View File

@@ -1,48 +0,0 @@
using Ardalis.Specification.QueryExtensions.Include;
using Xunit;
namespace Microsoft.eShopWeb.UnitTests.ApplicationCore.Helpers.Query.IncludeAggregatorTests
{
public class Include
{
[Fact]
public void Should_ReturnIncludeQueryWithCorrectPath_IfIncludeSimpleType()
{
var includeAggregator = new IncludeAggregator<Person>();
// There may be ORM libraries where including a simple type makes sense.
var includeQuery = includeAggregator.Include(p => p.Age);
Assert.Contains(includeQuery.Paths, path => path == nameof(Person.Age));
}
[Fact]
public void Should_ReturnIncludeQueryWithCorrectPath_IfIncludeFunction()
{
var includeAggregator = new IncludeAggregator<Person>();
// This include does not make much sense, but it should at least do not modify the paths.
var includeQuery = includeAggregator.Include(p => p.FavouriteBook.GetNumberOfSales());
Assert.Contains(includeQuery.Paths, path => path == nameof(Person.FavouriteBook));
}
[Fact]
public void Should_ReturnIncludeQueryWithCorrectPath_IfIncludeObject()
{
var includeAggregator = new IncludeAggregator<Person>();
var includeQuery = includeAggregator.Include(p => p.FavouriteBook.Author);
Assert.Contains(includeQuery.Paths, path => path == $"{nameof(Person.FavouriteBook)}.{nameof(Book.Author)}");
}
[Fact]
public void Should_ReturnIncludeQueryWithCorrectPath_IfIncludeCollection()
{
var includeAggregator = new IncludeAggregator<Book>();
var includeQuery = includeAggregator.Include(o => o.Author.Friends);
Assert.Contains(includeQuery.Paths, path => path == $"{nameof(Book.Author)}.{nameof(Person.Friends)}");
}
}
}

View File

@@ -1,80 +0,0 @@
using Ardalis.Specification.QueryExtensions.Include;
using Microsoft.eShopWeb.UnitTests.Builders;
using Xunit;
namespace Microsoft.eShopWeb.UnitTests.ApplicationCore.Helpers.Query.IncludeQueryTests
{
public class Include
{
private IncludeQueryBuilder _includeQueryBuilder = new IncludeQueryBuilder();
[Fact]
public void Should_ReturnIncludeQueryWithCorrectPath_IfIncludeSimpleType()
{
var includeQuery = _includeQueryBuilder.WithObjectAsPreviousProperty();
// There may be ORM libraries where including a simple type makes sense.
var newIncludeQuery = includeQuery.Include(b => b.Title);
Assert.Contains(newIncludeQuery.Paths, path => path == nameof(Book.Title));
}
[Fact]
public void Should_ReturnIncludeQueryWithCorrectPath_IfIncludeFunction()
{
var includeQuery = _includeQueryBuilder.WithObjectAsPreviousProperty();
// This include does not make much sense, but it should at least do not modify paths.
var newIncludeQuery = includeQuery.Include(b => b.GetNumberOfSales());
// The resulting paths should not include number of sales.
Assert.DoesNotContain(newIncludeQuery.Paths, path => path == nameof(Book.GetNumberOfSales));
}
[Fact]
public void Should_ReturnIncludeQueryWithCorrectPath_IfIncludeObject()
{
var includeQuery = _includeQueryBuilder.WithObjectAsPreviousProperty();
var newIncludeQuery = includeQuery.Include(b => b.Author);
Assert.Contains(newIncludeQuery.Paths, path => path == nameof(Book.Author));
}
[Fact]
public void Should_ReturnIncludeQueryWithCorrectPath_IfIncludeCollection()
{
var includeQuery = _includeQueryBuilder.WithObjectAsPreviousProperty();
var newIncludeQuery = includeQuery.Include(b => b.Author.Friends);
var expectedPath = $"{nameof(Book.Author)}.{nameof(Person.Friends)}";
Assert.Contains(newIncludeQuery.Paths, path => path == expectedPath);
}
[Fact]
public void Should_IncreaseNumberOfPathsByOne()
{
var includeQuery = _includeQueryBuilder.WithObjectAsPreviousProperty();
var numberOfPathsBeforeInclude = includeQuery.Paths.Count;
var newIncludeQuery = includeQuery.Include(b => b.Author.Friends);
var numberOfPathsAferInclude = newIncludeQuery.Paths.Count;
var expectedNumerOfPaths = numberOfPathsBeforeInclude + 1;
Assert.Equal(expectedNumerOfPaths, numberOfPathsAferInclude);
}
[Fact]
public void Should_NotModifyAnotherPath()
{
var includeQuery = _includeQueryBuilder.WithObjectAsPreviousProperty();
var pathsBeforeInclude = includeQuery.Paths;
var newIncludeQuery = includeQuery.Include(b => b.Author.Friends);
var pathsAfterInclude = newIncludeQuery.Paths;
Assert.Subset(pathsAfterInclude, pathsBeforeInclude);
}
}
}

View File

@@ -1,78 +0,0 @@
using Ardalis.Specification.QueryExtensions.Include;
using Microsoft.eShopWeb.UnitTests.Builders;
using System.Linq;
using Xunit;
namespace Microsoft.eShopWeb.UnitTests.ApplicationCore.Helpers.Query.IncludeQueryTests
{
public class ThenInclude
{
private IncludeQueryBuilder _includeQueryBuilder = new IncludeQueryBuilder();
[Fact]
public void Should_ReturnIncludeQueryWithCorrectPath_IfIncludeSimpleType()
{
var includeQuery = _includeQueryBuilder.WithObjectAsPreviousProperty();
var pathBeforeInclude = includeQuery.Paths.First();
// There may be ORM libraries where including a simple type makes sense.
var newIncludeQuery = includeQuery.ThenInclude(p => p.Age);
var pathAfterInclude = newIncludeQuery.Paths.First();
var expectedPath = $"{pathBeforeInclude}.{nameof(Person.Age)}";
Assert.Equal(expectedPath, pathAfterInclude);
}
[Fact]
public void Should_ReturnIncludeQueryWithCorrectPath_IfIncludeFunction()
{
var includeQuery = _includeQueryBuilder.WithObjectAsPreviousProperty();
var pathBeforeInclude = includeQuery.Paths.First();
// This include does not make much sense, but it should at least not modify the paths.
var newIncludeQuery = includeQuery.ThenInclude(p => p.GetQuote());
var pathAfterInclude = newIncludeQuery.Paths.First();
Assert.Equal(pathBeforeInclude, pathAfterInclude);
}
[Fact]
public void Should_ReturnIncludeQueryWithCorrectPath_IfIncludeObject()
{
var includeQuery = _includeQueryBuilder.WithObjectAsPreviousProperty();
var pathBeforeInclude = includeQuery.Paths.First();
var newIncludeQuery = includeQuery.ThenInclude(p => p.FavouriteBook);
var pathAfterInclude = newIncludeQuery.Paths.First();
var expectedPath = $"{pathBeforeInclude}.{nameof(Person.FavouriteBook)}";
Assert.Equal(expectedPath, pathAfterInclude);
}
[Fact]
public void Should_ReturnIncludeQueryWithCorrectPath_IfIncludeCollection()
{
var includeQuery = _includeQueryBuilder.WithObjectAsPreviousProperty();
var pathBeforeInclude = includeQuery.Paths.First();
var newIncludeQuery = includeQuery.ThenInclude(p => p.Friends);
var pathAfterInclude = newIncludeQuery.Paths.First();
var expectedPath = $"{pathBeforeInclude}.{nameof(Person.Friends)}";
Assert.Equal(expectedPath, pathAfterInclude);
}
[Fact]
public void Should_ReturnIncludeQueryWithCorrectPath_IfIncludePropertyOverCollection()
{
var includeQuery = _includeQueryBuilder.WithCollectionAsPreviousProperty();
var pathBeforeInclude = includeQuery.Paths.First();
var newIncludeQuery = includeQuery.ThenInclude(p => p.FavouriteBook);
var pathAfterInclude = newIncludeQuery.Paths.First();
var expectedPath = $"{pathBeforeInclude}.{nameof(Person.FavouriteBook)}";
Assert.Equal(expectedPath, pathAfterInclude);
}
}
}

View File

@@ -1,55 +0,0 @@
using Ardalis.Specification.QueryExtensions.Include;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using Xunit;
namespace Microsoft.eShopWeb.UnitTests.ApplicationCore.Helpers.Query.IncludeVisitorTests
{
public class Visit
{
[Fact]
public void Should_SetPath_IfPassedExpressionWithSimpleType()
{
var visitor = new IncludeVisitor();
Expression<Func<Book, string>> expression = (book) => book.Author.FirstName;
visitor.Visit(expression);
var expectedPath = $"{nameof(Book.Author)}.{nameof(Person.FirstName)}";
Assert.Equal(expectedPath, visitor.Path);
}
[Fact]
public void Should_SetPath_IfPassedExpressionWithObject()
{
var visitor = new IncludeVisitor();
Expression<Func<Book, Book>> expression = (book) => book.Author.FavouriteBook;
visitor.Visit(expression);
var expectedPath = $"{nameof(Book.Author)}.{nameof(Person.FavouriteBook)}";
Assert.Equal(expectedPath, visitor.Path);
}
[Fact]
public void Should_SetPath_IfPassedExpressionWithCollection()
{
var visitor = new IncludeVisitor();
Expression<Func<Book, List<Person>>> expression = (book) => book.Author.Friends;
visitor.Visit(expression);
var expectedPath = $"{nameof(Book.Author)}.{nameof(Person.Friends)}";
Assert.Equal(expectedPath, visitor.Path);
}
[Fact]
public void Should_SetPath_IfPassedExpressionWithFunction()
{
var visitor = new IncludeVisitor();
Expression<Func<Book, string>> expression = (book) => book.Author.GetQuote();
visitor.Visit(expression);
var expectedPath = nameof(Book.Author);
Assert.Equal(expectedPath, visitor.Path);
}
}
}

View File

@@ -1,19 +0,0 @@
using System.Collections.Generic;
namespace Microsoft.eShopWeb.UnitTests.ApplicationCore.Helpers.Query
{
public class Person
{
public int Age { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public Book FavouriteBook { get; set; }
public List<Person> Friends { get; set; }
public string GetQuote()
{
return string.Empty;
}
}
}

View File

@@ -18,7 +18,7 @@ namespace Microsoft.eShopWeb.UnitTests.ApplicationCore.Services.BasketServiceTes
}
[Fact]
public async Task Should_InvokeBasketRepositoryDeleteAsync_Once()
public async Task ShouldInvokeBasketRepositoryDeleteAsyncOnce()
{
var basket = new Basket(_buyerId);
basket.AddItem(1, It.IsAny<decimal>(), It.IsAny<int>());

View File

@@ -36,6 +36,5 @@ namespace Microsoft.eShopWeb.UnitTests.ApplicationCore.Services.BasketServiceTes
await Assert.ThrowsAsync<ArgumentNullException>(async () =>
await basketService.SetQuantities(123, null));
}
}
}