protected Common(EpicTransport transport, EpicOptions options) { Transport = transport; EpicManager = Transport.EpicManager; Options = options; AddNotifyPeerConnectionRequestOptions addNotifyPeerConnectionRequestOptions = new AddNotifyPeerConnectionRequestOptions { LocalUserId = EpicManager.AccountId.ProductUserId }; _onIncomingConnectionRequest += OnNewConnection; _onRemoteConnectionClosed += OnConnectionFailed; _incomingNotificationId = EpicManager.P2PInterface.AddNotifyPeerConnectionRequest(addNotifyPeerConnectionRequestOptions, null, _onIncomingConnectionRequest); AddNotifyPeerConnectionClosedOptions addNotifyPeerConnectionClosedOptions = new AddNotifyPeerConnectionClosedOptions { LocalUserId = EpicManager.AccountId.ProductUserId }; _outgoingNotificationId = EpicManager.P2PInterface.AddNotifyPeerConnectionClosed(addNotifyPeerConnectionClosedOptions, null, _onRemoteConnectionClosed); }
public async Task DeleteEpicAsync_FicticiousEpicId_ThrowsNotFoundException() { //arrange Guid publicProjectId = Guid.NewGuid(); Project expectedProject = new Project() { ProjectId = 1, PublicProjectId = publicProjectId, Name = "name", Description = null, DateTimeCreated = DateTime.UtcNow.AddMinutes(-60) }; var projectRepositoryMock = new Mock <IProjectRepository>(MockBehavior.Strict); projectRepositoryMock.Setup(x => x.GetProjectAsync(publicProjectId)) .ReturnsAsync(expectedProject); Guid publicEpicId = Guid.NewGuid(); Epic expectedEpic = null; var epicRepositoryMock = new Mock <IEpicRepository>(MockBehavior.Strict); epicRepositoryMock.Setup(x => x.GetEpicAsync(publicEpicId)) .ReturnsAsync(expectedEpic); epicRepositoryMock.Setup(x => x.DeleteEpicAsync(publicEpicId)) .Returns(Task.CompletedTask); var epicManager = new EpicManager(projectRepositoryMock.Object, epicRepositoryMock.Object); //act/assert _ = await Assert.ThrowsAsync <NotFoundException>(async() => { await epicManager.DeleteEpicAsync(publicProjectId, publicEpicId); }); }
public async Task CreateEpicAsync_DescriptionTooLong_ThrowsValidationException(string name, string description) { //arrange Guid publicProjectId = Guid.NewGuid(); Project expectedProject = new Project() { ProjectId = 1, PublicProjectId = publicProjectId, Name = "name", Description = null, DateTimeCreated = DateTime.UtcNow.AddMinutes(-60) }; var projectRepositoryMock = new Mock <IProjectRepository>(MockBehavior.Strict); projectRepositoryMock.Setup(x => x.GetProjectAsync(publicProjectId)) .ReturnsAsync(expectedProject); var epicRepositoryMock = new Mock <IEpicRepository>(MockBehavior.Strict); IEpicManager epicManager = new EpicManager(projectRepositoryMock.Object, epicRepositoryMock.Object); //act/assert ValidationException exception = await Assert.ThrowsAsync <ValidationException>(async() => { _ = await epicManager.CreateEpicAsync(publicProjectId, name, description); }); //assert Assert.True(exception.ValidationErrors.Count == 1); Assert.True(exception.ValidationErrors.Single().Property == "description"); Assert.True(exception.ValidationErrors.Single().ErrorMessage == "Must be shorter than 512 characters."); }
private void Start() { _epicOptions.Channels = new PacketReliability[2]; _epicOptions.Channels[0] = PacketReliability.ReliableOrdered; _epicOptions.Channels[1] = PacketReliability.UnreliableUnordered; EpicManager = GetComponent <EpicManager>(); }
public async Task UpdateEpicAsync_NameNotSet_ThrowsValidationException(string name, string description) { //arrange Guid publicProjectId = Guid.NewGuid(); Project expectedProject = new Project() { ProjectId = 1, PublicProjectId = publicProjectId, Name = "name", Description = null, DateTimeCreated = DateTime.UtcNow.AddMinutes(-60) }; var projectRepositoryMock = new Mock <IProjectRepository>(MockBehavior.Strict); projectRepositoryMock.Setup(x => x.GetProjectAsync(publicProjectId)) .ReturnsAsync(expectedProject); Guid publicEpicId = Guid.NewGuid(); Epic expectedEpic = new Epic() { EpicId = 1, PublicEpicId = publicEpicId, ProjectId = 1, Project = expectedProject, Name = name, Description = description, DateTimeCreated = DateTime.UtcNow.AddMinutes(-60) }; var epicRepositoryMock = new Mock <IEpicRepository>(MockBehavior.Strict); epicRepositoryMock.Setup(x => x.GetEpicAsync(publicEpicId)) .ReturnsAsync(expectedEpic); epicRepositoryMock.Setup(x => x.UpdateEpicAsync(publicEpicId, expectedEpic.Name, expectedEpic.Description)) .ReturnsAsync(expectedEpic); var epicManager = new EpicManager(projectRepositoryMock.Object, epicRepositoryMock.Object); //act/assert ValidationException exception = await Assert.ThrowsAsync <ValidationException>(async() => { _ = await epicManager.UpdateEpicAsync(publicProjectId, publicEpicId, name, description); }); //assert Assert.True(exception.ValidationErrors.Count == 1); Assert.True(exception.ValidationErrors.Single().Property == "name"); Assert.True(exception.ValidationErrors.Single().ErrorMessage == "Must be set."); }
public async Task UpdateEpicAsync_ValidInput_ReturnsEpic(string name, string description) { //arrange Guid publicProjectId = Guid.NewGuid(); Project expectedProject = new Project() { ProjectId = 1, PublicProjectId = publicProjectId, Name = "name", Description = null, DateTimeCreated = DateTime.UtcNow.AddMinutes(-60) }; var projectRepositoryMock = new Mock <IProjectRepository>(MockBehavior.Strict); projectRepositoryMock.Setup(x => x.GetProjectAsync(publicProjectId)) .ReturnsAsync(expectedProject); Guid publicEpicId = Guid.NewGuid(); Epic expectedEpic = new Epic() { EpicId = 1, PublicEpicId = publicEpicId, ProjectId = 1, Project = expectedProject, Name = name, Description = description, DateTimeCreated = DateTime.UtcNow.AddMinutes(-60) }; var epicRepositoryMock = new Mock <IEpicRepository>(MockBehavior.Strict); epicRepositoryMock.Setup(x => x.GetEpicAsync(publicEpicId)) .ReturnsAsync(expectedEpic); epicRepositoryMock.Setup(x => x.UpdateEpicAsync(publicEpicId, expectedEpic.Name, expectedEpic.Description)) .ReturnsAsync(expectedEpic); var epicManager = new EpicManager(projectRepositoryMock.Object, epicRepositoryMock.Object); //act Epic createdEpic = await epicManager.UpdateEpicAsync(publicProjectId, publicEpicId, name, description); //assert Assert.Equal(expectedEpic, createdEpic); }
public async Task GetEpicsAsync_ValidProjectId_ReturnsEpics() { Guid publicProjectId = Guid.NewGuid(); Project expectedProject = new Project() { ProjectId = 1, PublicProjectId = publicProjectId, Name = "name", Description = null, DateTimeCreated = DateTime.UtcNow.AddMinutes(-60) }; var projectRepositoryMock = new Mock <IProjectRepository>(MockBehavior.Strict); projectRepositoryMock.Setup(x => x.GetProjectAsync(publicProjectId)) .ReturnsAsync(expectedProject); List <Epic> expectedEpics = new List <Epic>() { new Epic() { EpicId = 1, PublicEpicId = Guid.NewGuid(), ProjectId = expectedProject.ProjectId, Name = "Epic 1", Description = null, DateTimeCreated = DateTime.UtcNow }, new Epic() { EpicId = 2, PublicEpicId = Guid.NewGuid(), ProjectId = expectedProject.ProjectId, Name = "Epic 2", Description = null, DateTimeCreated = DateTime.UtcNow }, }; var epicRepositoryMock = new Mock <IEpicRepository>(MockBehavior.Strict); IEpicManager epicManager = new EpicManager(projectRepositoryMock.Object, epicRepositoryMock.Object); epicRepositoryMock.Setup(x => x.GetEpicsAsync(expectedProject.ProjectId)) .ReturnsAsync(expectedEpics); //act List <Epic> epics = await epicManager.GetEpicsAsync(publicProjectId); //assert Assert.Equal(expectedEpics, epics); }
public async Task GetEpicsAsync_FicticiousProjectId_ThrowsNotFoundException() { Guid projectId = Guid.NewGuid(); Project expectedProject = null; var projectRepositoryMock = new Mock <IProjectRepository>(MockBehavior.Strict); projectRepositoryMock.Setup(x => x.GetProjectAsync(projectId)) .ReturnsAsync(expectedProject); var epicRepositoryMock = new Mock <IEpicRepository>(MockBehavior.Strict); IEpicManager epicManager = new EpicManager(projectRepositoryMock.Object, epicRepositoryMock.Object); //act/assert _ = await Assert.ThrowsAsync <NotFoundException>(async() => { _ = await epicManager.GetEpicsAsync(projectId); }); }
public async Task DeleteEpicAsync_ValidInput_NoExceptionsThrown() { //arrange Guid publicProjectId = Guid.NewGuid(); Project expectedProject = new Project() { ProjectId = 1, PublicProjectId = publicProjectId, Name = "name", Description = null, DateTimeCreated = DateTime.UtcNow.AddMinutes(-60) }; var projectRepositoryMock = new Mock <IProjectRepository>(MockBehavior.Strict); projectRepositoryMock.Setup(x => x.GetProjectAsync(publicProjectId)) .ReturnsAsync(expectedProject); Guid publicEpicId = Guid.NewGuid(); Epic expectedEpic = new Epic() { EpicId = 1, PublicEpicId = publicEpicId, ProjectId = expectedProject.ProjectId, Project = expectedProject, Name = "name", Description = null, DateTimeCreated = DateTime.UtcNow.AddMinutes(-60) }; var epicRepositoryMock = new Mock <IEpicRepository>(MockBehavior.Strict); epicRepositoryMock.Setup(x => x.GetEpicAsync(publicEpicId)) .ReturnsAsync(expectedEpic); epicRepositoryMock.Setup(x => x.DeleteEpicAsync(publicEpicId)) .Returns(Task.CompletedTask); var epicManager = new EpicManager(projectRepositoryMock.Object, epicRepositoryMock.Object); //act await epicManager.DeleteEpicAsync(publicProjectId, publicEpicId); //assert - implicit }