Added basic unit tests for all controllers
This commit is contained in:
		
							
								
								
									
										100
									
								
								Aurora.test/ControllerTests/EventTests.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								Aurora.test/ControllerTests/EventTests.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,100 @@
 | 
			
		||||
 | 
			
		||||
using NUnit.Framework;
 | 
			
		||||
using Aurora.Proto.PartyV2;
 | 
			
		||||
using Aurora.Services.Server;
 | 
			
		||||
using Aurora.Services.Server.EventManager;
 | 
			
		||||
using Grpc.Core;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using System.Threading;
 | 
			
		||||
using Autofac;
 | 
			
		||||
namespace Aurora.test.ControllerTests
 | 
			
		||||
{
 | 
			
		||||
    public class EventTest
 | 
			
		||||
    {
 | 
			
		||||
        private RemotePartyService.RemotePartyServiceClient _remotePartyService;
 | 
			
		||||
        private Channel _channel;
 | 
			
		||||
        private IContainer _container;
 | 
			
		||||
        private IServerService _serverService;
 | 
			
		||||
 | 
			
		||||
        #region Setup
 | 
			
		||||
        [SetUp]
 | 
			
		||||
        public void Setup()
 | 
			
		||||
        {
 | 
			
		||||
            _container = SetupUtil.SetupOneTime();
 | 
			
		||||
            _remotePartyService = SetupUtil.Setup(ref _container, ref _serverService, ref _channel);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [TearDown]
 | 
			
		||||
        public async Task TearDown()
 | 
			
		||||
        {
 | 
			
		||||
            await _serverService.Stop();
 | 
			
		||||
            await _channel.ShutdownAsync();
 | 
			
		||||
            _container.Dispose();
 | 
			
		||||
        }
 | 
			
		||||
        #endregion Setup
 | 
			
		||||
        [Test]
 | 
			
		||||
        [TestCase(EventType.MediaPlaying)]
 | 
			
		||||
        public void Asdf(EventType value)
 | 
			
		||||
        {
 | 
			
		||||
            Assert.AreEqual(1, 1);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Test]
 | 
			
		||||
        [TestCase(EventType.MediaPlaying)]
 | 
			
		||||
        [TestCase(EventType.MediaStopped)]
 | 
			
		||||
        [TestCase(EventType.MemberCreated)]
 | 
			
		||||
        [TestCase(EventType.MemberDeleted)]
 | 
			
		||||
        public async Task TestEventSubscriptions(EventType value)
 | 
			
		||||
        {
 | 
			
		||||
            using (var scope = _container.BeginLifetimeScope())
 | 
			
		||||
            {
 | 
			
		||||
                IEventManager eventManager = scope.Resolve<IEventManager>();
 | 
			
		||||
 | 
			
		||||
                //Create new party member
 | 
			
		||||
                Member member = _remotePartyService.CreateMember(new CreateMemberRequest()
 | 
			
		||||
                {
 | 
			
		||||
                    Parent = "party1",
 | 
			
		||||
                    Member = new Member()
 | 
			
		||||
                    {
 | 
			
		||||
                        UserName = "newMember1",
 | 
			
		||||
                        IpAddress = ServerService.GetLocalIPAddress(),
 | 
			
		||||
                    }
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
                //Subscribe to event type
 | 
			
		||||
                _remotePartyService.CreateEventSubscription(new CreateEventSubscriptionRequest()
 | 
			
		||||
                {
 | 
			
		||||
                    Parent = member.Name,
 | 
			
		||||
                    EventSubscription = new EventSubscription()
 | 
			
		||||
                    {
 | 
			
		||||
                        Type = value
 | 
			
		||||
                    }
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
                BaseEvent @event = new BaseEvent
 | 
			
		||||
                {
 | 
			
		||||
                    EventType = value,
 | 
			
		||||
                };
 | 
			
		||||
                //Fire event
 | 
			
		||||
 | 
			
		||||
                CancellationTokenSource eventCancellationTokenSource = new CancellationTokenSource();
 | 
			
		||||
                BaseEvent newEvent = null;
 | 
			
		||||
 | 
			
		||||
                Task.Run(async () => { await Task.Delay(1000); eventManager.FireEvent(@event); });
 | 
			
		||||
 | 
			
		||||
                using (AsyncServerStreamingCall<BaseEvent> eventStream = _remotePartyService
 | 
			
		||||
                .GetEvents(new GetEventsRequest() { Parent = member.Name }))
 | 
			
		||||
                {
 | 
			
		||||
                    while ((!eventCancellationTokenSource.Token.IsCancellationRequested &&
 | 
			
		||||
                        await eventStream.ResponseStream.MoveNext(eventCancellationTokenSource.Token)))
 | 
			
		||||
                    {
 | 
			
		||||
                        newEvent = new BaseEvent(eventStream.ResponseStream.Current);
 | 
			
		||||
                        break;
 | 
			
		||||
                    }
 | 
			
		||||
                };
 | 
			
		||||
 | 
			
		||||
                Assert.AreEqual(newEvent.EventType, value);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,9 +1,6 @@
 | 
			
		||||
using NUnit.Framework;
 | 
			
		||||
using Aurora.Proto.PartyV2;
 | 
			
		||||
using Aurora.Services.Server;
 | 
			
		||||
using Aurora.Services.Library;
 | 
			
		||||
using Aurora.Services.Settings;
 | 
			
		||||
using Aurora.test.Models.Mock;
 | 
			
		||||
using Grpc.Core;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
@@ -19,19 +16,11 @@ namespace Aurora.test.ControllerTests
 | 
			
		||||
        private IContainer _container;
 | 
			
		||||
        private IServerService _serverService;
 | 
			
		||||
 | 
			
		||||
        #region Setup
 | 
			
		||||
        [OneTimeSetUp]
 | 
			
		||||
        public void SetupOneTime()
 | 
			
		||||
        {
 | 
			
		||||
            ContainerBuilder builder = new ContainerBuilder();
 | 
			
		||||
            builder.RegisterType<ServerService>().As<IServerService>().SingleInstance();
 | 
			
		||||
            builder.RegisterInstance<ISettingsService>(new SettingsServiceMock()
 | 
			
		||||
            {
 | 
			
		||||
                Username = "Test User 1",
 | 
			
		||||
                DefaultPort = 4005,
 | 
			
		||||
                LibraryLocation = string.Format("{0}/Resources", Directory.GetCurrentDirectory())
 | 
			
		||||
            }).SingleInstance();
 | 
			
		||||
            builder.RegisterType<LibraryService>().As<ILibraryService>().SingleInstance();
 | 
			
		||||
            _container = builder.Build();
 | 
			
		||||
            _container = SetupUtil.SetupOneTime();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [OneTimeTearDown]
 | 
			
		||||
@@ -43,10 +32,7 @@ namespace Aurora.test.ControllerTests
 | 
			
		||||
        [SetUp]
 | 
			
		||||
        public void Setup()
 | 
			
		||||
        {
 | 
			
		||||
            _serverService = _container.Resolve<IServerService>();
 | 
			
		||||
            _serverService.Start("testParty", "asdf");
 | 
			
		||||
            _channel = new Channel(string.Format("{0}:{1}", ServerService.GetLocalIPAddress(), 8080), ChannelCredentials.Insecure);
 | 
			
		||||
            _remotePartyService = new RemotePartyService.RemotePartyServiceClient(_channel);
 | 
			
		||||
            _remotePartyService = SetupUtil.Setup(ref _container, ref _serverService, ref _channel);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [TearDown]
 | 
			
		||||
@@ -55,6 +41,7 @@ namespace Aurora.test.ControllerTests
 | 
			
		||||
            await _serverService.Stop();
 | 
			
		||||
            await _channel.ShutdownAsync();
 | 
			
		||||
        }
 | 
			
		||||
        #endregion Setup
 | 
			
		||||
 | 
			
		||||
        [Test]
 | 
			
		||||
        public void TestNotEmpty()
 | 
			
		||||
@@ -69,5 +56,23 @@ namespace Aurora.test.ControllerTests
 | 
			
		||||
            Assert.NotZero(resp.Media.Count);
 | 
			
		||||
            Assert.AreEqual(resp.Media.Count, 5);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Test]
 | 
			
		||||
        public void GetMediaTest()
 | 
			
		||||
        {
 | 
			
		||||
            ListMediaResponse resp = _remotePartyService.ListMedia(new ListMediaRequest()
 | 
			
		||||
            {
 | 
			
		||||
                Parent = "testParty",
 | 
			
		||||
                PageSize = 5
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            Media media = _remotePartyService.GetMedia(new GetMediaRequest()
 | 
			
		||||
            {
 | 
			
		||||
                Name = resp.Media[0].Name
 | 
			
		||||
            });
 | 
			
		||||
 | 
			
		||||
            Assert.NotNull(media);
 | 
			
		||||
            Assert.AreEqual(media.Name, resp.Media[0].Name);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -1,13 +1,9 @@
 | 
			
		||||
using NUnit.Framework;
 | 
			
		||||
using Aurora.Proto.PartyV2;
 | 
			
		||||
using Aurora.Services.Server;
 | 
			
		||||
using Aurora.Services.Library;
 | 
			
		||||
using Aurora.Services.Settings;
 | 
			
		||||
using Aurora.test.Models.Mock;
 | 
			
		||||
using Grpc.Core;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using Autofac;
 | 
			
		||||
 | 
			
		||||
namespace Aurora.test.ControllerTests
 | 
			
		||||
@@ -20,19 +16,11 @@ namespace Aurora.test.ControllerTests
 | 
			
		||||
        private IContainer _container;
 | 
			
		||||
        private IServerService _serverService;
 | 
			
		||||
 | 
			
		||||
        #region Setup
 | 
			
		||||
        [OneTimeSetUp]
 | 
			
		||||
        public void SetupOneTime()
 | 
			
		||||
        {
 | 
			
		||||
            ContainerBuilder builder = new ContainerBuilder();
 | 
			
		||||
            builder.RegisterType<ServerService>().As<IServerService>().SingleInstance();
 | 
			
		||||
            builder.RegisterInstance<ISettingsService>(new SettingsServiceMock()
 | 
			
		||||
            {
 | 
			
		||||
                Username = "Test User 1",
 | 
			
		||||
                DefaultPort = 4005,
 | 
			
		||||
                LibraryLocation = string.Format("{0}/Resource", Directory.GetCurrentDirectory())
 | 
			
		||||
            }).SingleInstance();
 | 
			
		||||
            builder.RegisterType<LibraryService>().As<ILibraryService>().SingleInstance();
 | 
			
		||||
            _container = builder.Build();
 | 
			
		||||
            _container = SetupUtil.SetupOneTime();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [OneTimeTearDown]
 | 
			
		||||
@@ -44,10 +32,7 @@ namespace Aurora.test.ControllerTests
 | 
			
		||||
        [SetUp]
 | 
			
		||||
        public void Setup()
 | 
			
		||||
        {
 | 
			
		||||
            _serverService = _container.Resolve<IServerService>();
 | 
			
		||||
            _serverService.Start("testParty", "asdf");
 | 
			
		||||
            _channel = new Channel(string.Format("{0}:{1}", ServerService.GetLocalIPAddress(), 8080), ChannelCredentials.Insecure);
 | 
			
		||||
            _remotePartyService = new RemotePartyService.RemotePartyServiceClient(_channel);
 | 
			
		||||
            _remotePartyService = SetupUtil.Setup(ref _container, ref _serverService, ref _channel);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [TearDown]
 | 
			
		||||
@@ -56,6 +41,8 @@ namespace Aurora.test.ControllerTests
 | 
			
		||||
            await _serverService.Stop();
 | 
			
		||||
            await _channel.ShutdownAsync();
 | 
			
		||||
        }
 | 
			
		||||
        #endregion Setup
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        [Test]
 | 
			
		||||
        public void DefaultTest()
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,7 @@
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using NUnit.Framework;
 | 
			
		||||
using Aurora.Proto.PartyV2;
 | 
			
		||||
using Aurora.Services.Server;
 | 
			
		||||
using Aurora.Services.Library;
 | 
			
		||||
using Aurora.Services.Settings;
 | 
			
		||||
using Aurora.test.Models.Mock;
 | 
			
		||||
using Grpc.Core;
 | 
			
		||||
using Autofac;
 | 
			
		||||
 | 
			
		||||
@@ -18,19 +14,11 @@ namespace Aurora.test.ControllerTests
 | 
			
		||||
        private IContainer _container;
 | 
			
		||||
        private IServerService _serverService;
 | 
			
		||||
 | 
			
		||||
        #region Setup
 | 
			
		||||
        [OneTimeSetUp]
 | 
			
		||||
        public void SetupOneTime()
 | 
			
		||||
        {
 | 
			
		||||
            ContainerBuilder builder = new ContainerBuilder();
 | 
			
		||||
            builder.RegisterType<ServerService>().As<IServerService>().SingleInstance();
 | 
			
		||||
            builder.RegisterInstance<ISettingsService>(new SettingsServiceMock()
 | 
			
		||||
            {
 | 
			
		||||
                Username = "Test User 1",
 | 
			
		||||
                DefaultPort = 4005,
 | 
			
		||||
                LibraryLocation = string.Format("{0}/Resource", Directory.GetCurrentDirectory())
 | 
			
		||||
            }).SingleInstance();
 | 
			
		||||
            builder.RegisterType<LibraryService>().As<ILibraryService>().SingleInstance();
 | 
			
		||||
            _container = builder.Build();
 | 
			
		||||
            _container = SetupUtil.SetupOneTime();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [OneTimeTearDown]
 | 
			
		||||
@@ -42,10 +30,7 @@ namespace Aurora.test.ControllerTests
 | 
			
		||||
        [SetUp]
 | 
			
		||||
        public void Setup()
 | 
			
		||||
        {
 | 
			
		||||
            _serverService = _container.Resolve<IServerService>();
 | 
			
		||||
            _serverService.Start("testParty", "asdf");
 | 
			
		||||
            _channel = new Channel(string.Format("{0}:{1}", ServerService.GetLocalIPAddress(), 8080), ChannelCredentials.Insecure);
 | 
			
		||||
            _remotePartyService = new RemotePartyService.RemotePartyServiceClient(_channel);
 | 
			
		||||
            _remotePartyService = SetupUtil.Setup(ref _container, ref _serverService, ref _channel);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [TearDown]
 | 
			
		||||
@@ -54,6 +39,7 @@ namespace Aurora.test.ControllerTests
 | 
			
		||||
            await _serverService.Stop();
 | 
			
		||||
            await _channel.ShutdownAsync();
 | 
			
		||||
        }
 | 
			
		||||
        #endregion Setup
 | 
			
		||||
 | 
			
		||||
        [Test]
 | 
			
		||||
        public void DefaultTest()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										39
									
								
								Aurora.test/ControllerTests/Setup.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								Aurora.test/ControllerTests/Setup.cs
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
using Autofac;
 | 
			
		||||
using Aurora.Proto.PartyV2;
 | 
			
		||||
using Aurora.Services.Server;
 | 
			
		||||
using Aurora.Services.Library;
 | 
			
		||||
using Aurora.Services.Settings;
 | 
			
		||||
using Aurora.Services.Server.EventManager;
 | 
			
		||||
using Aurora.test.Models.Mock;
 | 
			
		||||
using System.IO;
 | 
			
		||||
using Grpc.Core;
 | 
			
		||||
 | 
			
		||||
namespace Aurora.test.ControllerTests
 | 
			
		||||
{
 | 
			
		||||
    public class SetupUtil
 | 
			
		||||
    {
 | 
			
		||||
        public static IContainer SetupOneTime()
 | 
			
		||||
        {
 | 
			
		||||
            ContainerBuilder builder = new ContainerBuilder();
 | 
			
		||||
            builder.RegisterType<ServerService>().As<IServerService>().SingleInstance();
 | 
			
		||||
            builder.RegisterInstance<ISettingsService>(new SettingsServiceMock()
 | 
			
		||||
            {
 | 
			
		||||
                Username = "Test User 1",
 | 
			
		||||
                DefaultPort = 4005,
 | 
			
		||||
                LibraryLocation = string.Format("{0}/Resources", Directory.GetCurrentDirectory())
 | 
			
		||||
            }).SingleInstance();
 | 
			
		||||
            builder.RegisterType<LibraryService>().As<ILibraryService>().SingleInstance();
 | 
			
		||||
            builder.RegisterType<EventManager>().As<IEventManager>().SingleInstance();
 | 
			
		||||
            return builder.Build();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public static RemotePartyService.RemotePartyServiceClient Setup(ref IContainer container, ref IServerService serverService, ref Channel channel)
 | 
			
		||||
        {
 | 
			
		||||
            serverService = container.Resolve<IServerService>();
 | 
			
		||||
            serverService.Start("testParty", "asdf");
 | 
			
		||||
            channel = new Channel(string.Format("{0}:{1}", ServerService.GetLocalIPAddress(), 8080), ChannelCredentials.Insecure);
 | 
			
		||||
            return new RemotePartyService.RemotePartyServiceClient(channel);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user