Skip to content

Commit

Permalink
adding log and tests
Browse files Browse the repository at this point in the history
  • Loading branch information
tobyash86 committed Dec 12, 2022
1 parent 71fb3e8 commit 779aa75
Show file tree
Hide file tree
Showing 3 changed files with 108 additions and 1 deletion.
38 changes: 38 additions & 0 deletions WebGoat.NET.Tests/BlogRespRepositoryTests/BlogResponsesTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
using Moq;
using NUnit.Framework;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WebGoatCore.Data;
using WebGoatCore.Models;

namespace WebGoat.NET.Tests.BlogRespRepositoryTests
{
[TestFixture]
public class BlogResponsesTests
{
Mock<NorthwindContext> _context;

[SetUp]
public void Setup()
{
_context = ContextSetup.CreateContext();
}

[Test]
public void CreateBlogRespTest()
{
var blogEntryRepo = new BlogEntryRepository(_context.Object);
var entry1 = blogEntryRepo.GetBlogEntry(1);

var respRepo = new BlogResponseRepository(_context.Object);
var resp = new BlogResponse() { Author = "admin", Contents = "Test", Id = 4, ResponseDate = DateTime.Now, BlogEntry = entry1, BlogEntryId = entry1.Id };

respRepo.CreateBlogResponse(resp);

Assert.That(_context.Object.BlogResponses.Count(), Is.EqualTo(4));
}
}
}
67 changes: 67 additions & 0 deletions WebGoat.NET.Tests/BlogRespRepositoryTests/ContextSetup.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.ChangeTracking;
using Microsoft.EntityFrameworkCore.ChangeTracking.Internal;
using Microsoft.EntityFrameworkCore.Metadata;
using Moq;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WebGoatCore.Data;
using WebGoatCore.Models;

namespace WebGoat.NET.Tests.BlogRespRepositoryTests
{
internal static class ContextSetup
{
internal static Mock<NorthwindContext> CreateContext()
{
// create test DB
var context = BlogRepositoryTests.ContextSetup.CreateContext();

var blogEntryRepo = new BlogEntryRepository(context.Object);

var entry1 = blogEntryRepo.GetBlogEntry(1);

var r1 = new BlogResponse() { Author = "admin", Contents = "Test Content", Id = 1, ResponseDate = DateTime.Now, BlogEntry = entry1, BlogEntryId = entry1.Id };
var r2 = new BlogResponse() { Author = "kmitnick", Contents = "KM Test Content", Id = 2, ResponseDate = DateTime.Now, BlogEntry = entry1, BlogEntryId = entry1.Id };
var r3 = new BlogResponse() { Author = "me", Contents = "ME Test Content", Id = 3, ResponseDate = DateTime.Now, BlogEntry = entry1, BlogEntryId = entry1.Id };

entry1.Responses.Add(r1);
entry1.Responses.Add(r2);
entry1.Responses.Add(r3);

var entriesList = new List<BlogResponse> {
r1, r2, r3
};
var initialBlogEntries = entriesList.AsQueryable();

Func<BlogResponse, EntityEntry<BlogResponse>> mockEntityEntry = (BlogResponse data) =>
{
var internalEntityEntry = new InternalEntityEntry(
new Mock<IStateManager>().Object,
new RuntimeEntityType(nameof(BlogResponse), typeof(BlogResponse), false, null, null, null, ChangeTrackingStrategy.Snapshot, null, false),
data);
var entityEntry = new EntityEntry<BlogResponse>(internalEntityEntry);
return entityEntry;
};

var mockSet = DbSetTestUtil.CreateDbSetMock(initialBlogEntries);

mockSet.Setup(m => m.Add(It.IsAny<BlogResponse>())).Returns((BlogResponse b) =>
{
entriesList.Add(b);
return mockEntityEntry(b);
});

context.SetupGet(c => c.BlogResponses).Returns(mockSet.Object);

return context;
}


}
}
4 changes: 3 additions & 1 deletion WebGoat.NET/Data/CategoryRepository.cs
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
using WebGoatCore.Models;
using System.Collections.Generic;
using System.Linq;

using WebGoat.NET.Logger;

namespace WebGoatCore.Data
{
public class CategoryRepository
Expand All @@ -15,6 +16,7 @@ public CategoryRepository(NorthwindContext context)

public List<Category> GetAllCategories()
{
DummyLogger.Log("Calling" + nameof(GetAllCategories) + "()");
return _context.Categories.OrderBy(c => c.CategoryId).ToList();
}

Expand Down

0 comments on commit 779aa75

Please sign in to comment.