Пример #1
0
        public override async Task ExecuteAsync(List <string> arguments)
        {
            if (arguments.Count != EXPECTED_ARGUMENTS)
            {
                Console.WriteLine("Expected " + EXPECTED_ARGUMENTS + " arguments but found " + arguments.Count + ".");
                return;
            }

            string partitionId = arguments.ElementAt(0);
            string objectId    = arguments.ElementAt(1);
            string value       = arguments.ElementAt(2);

            try
            {
                Console.WriteLine($"Write... {partitionId} {objectId} {value}");
                await WriteController.Execute(ConnectionManager, partitionId, objectId, value);

                Console.WriteLine($"Success...");
            }
            catch (ServerBindException e)
            {
                Console.WriteLine($"ERROR: {e.Message}");
            }
            catch (RpcException ex) when(ex.StatusCode == StatusCode.Internal)
            {
                Console.WriteLine($"Could not establish connection with server.");
            }
        }
        public async Task PostItemSucceeds()
        {
            var item = new TestEntity {
                Name = "Ent"
            };
            var repoItem = new TestEntity {
                Id = 123, Name = "Ent"
            };
            var mockRepository = new Mock <IWriteRepository <TestEntity> >(MockBehavior.Strict);

            mockRepository.Setup(r => r.PostAsync(item)).Returns(Task.FromResult(repoItem));
            var controller =
                new WriteController <TestEntity>(mockRepository.Object)
            {
                ControllerContext = { HttpContext = new DefaultHttpContext() }
            };

            var request = controller.HttpContext.Request;

            request.Scheme = "https";
            request.Host   = new HostString("somehost");
            request.Path   = "/ents";

            var actionResult = await controller.PostAsync(item) as CreatedResult;

            Assert.NotNull(actionResult);
            Assert.AreEqual("https://somehost/ents/123", actionResult.Location);
            var dataResult = actionResult.Value as TestEntity;

            Assert.NotNull(dataResult);
            Assert.AreEqual(123, dataResult.Id);
            Assert.AreEqual("Ent", dataResult.Name);
        }
Пример #3
0
        public void POSTWritesFormattedMessageToLog()
        {
            var logSystem       = new Mock <ILogger <FileSystemLoggingCategory> >();
            var exceptionLogger = new Mock <ILogger <WriteController> >();

            var message =
                new Message()
            {
                Id      = 999,
                Date    = new DateTime(2020, 10, 23, 12, 05, 59),
                Content = "this is a test"
            };

            var logMessage = "Message contains Id: 999, Date: 23/10/2020 12:05:59, Content: this is a test";

            logSystem
            .Setup(ls =>
                   ls.Log(
                       LogLevel.Information,
                       It.IsAny <EventId>(),
                       It.Is <It.IsAnyType>((o, _) => o.ToString() == logMessage),
                       It.IsAny <Exception>(),
                       It.Is <Func <It.IsAnyType, Exception, string> >((v, t) => true)));

            var controller =
                new WriteController(
                    logSystem.Object,
                    exceptionLogger.Object);

            var result = controller.Post(message);

            Assert.AreEqual(200, (result as StatusCodeResult).StatusCode);

            logSystem.VerifyAll();
        }
        public async Task DeleteSucceeds()
        {
            var mockRepository = new Mock <IWriteRepository <TestEntity> >(MockBehavior.Strict);

            mockRepository.Setup(r => r.DeleteAsync(123)).Returns(Task.FromResult(true));
            var controller = new WriteController <TestEntity>(mockRepository.Object);
            var result     = await controller.DeleteAsync(123) as NoContentResult;

            Assert.NotNull(result);
        }
Пример #5
0
        public void Test_WriteController_DeleteByIdFail()
        {
            // Arrange
            WriteController writeController = new WriteController(this._UoW);

            //Act
            var response = writeController.Delete(-1);

            //Assert
            Assert.AreEqual(response, false);
        }
Пример #6
0
        public void Test_WriteController_DeleteByIdSuccess()
        {
            // Arrange
            WriteController writeController = new WriteController(this._UoW);

            //Act
            var response = writeController.Delete(4);

            //Assert
            Assert.AreEqual(response, true);
        }
        public void DeleteItemWhenRepoThrows()
        {
            var item = new TestEntity {
                Id = 123, Name = "Ent"
            };
            var mockRepository = new Mock <IWriteRepository <TestEntity> >(MockBehavior.Strict);

            mockRepository.Setup(r => r.DeleteAsync(123)).ThrowsAsync(new IOException());
            var controller = new WriteController <TestEntity>(mockRepository.Object);

            Assert.ThrowsAsync <IOException>(async() => await controller.DeleteAsync(123));
        }
        public async Task PostItemNoItem()
        {
            var mockRepository = new Mock <IWriteRepository <TestEntity> >(MockBehavior.Strict);
            var controller     = new WriteController <TestEntity>(mockRepository.Object);

            var actionResult = await controller.PostAsync(null) as BadRequestObjectResult;

            Assert.NotNull(actionResult);
            var message = actionResult.Value as string;

            Assert.NotNull(message);
            Assert.AreEqual(WriteController <TestEntity> .BadPostMessage, actionResult.Value);
        }
        public async Task PutItemSucceeds()
        {
            var item = new TestEntity {
                Id = 123, Name = "Ent"
            };
            var mockRepository = new Mock <IWriteRepository <TestEntity> >(MockBehavior.Strict);

            mockRepository.Setup(r => r.PutAsync(item)).Returns(Task.CompletedTask);
            var controller   = new WriteController <TestEntity>(mockRepository.Object);
            var actionResult = await controller.PutAsync(123, item) as NoContentResult;

            Assert.NotNull(actionResult);
        }
Пример #10
0
        /// <summary>
        /// The application entry point.
        /// </summary>
        /// <param name="args">
        /// The command line arguments.
        /// </param>
        static void Main(string[] args)
        {
            // INITIALISE an IReadController, IWriteController, IFilterController, IReportController as their respective
            // concrete implementations, ReadController, WriteController, FilterController and ReportController
            IReadController   readController   = new ReadController();
            IWriteController  writeController  = new WriteController();
            IFilterController filterController = new FilterController();
            IReportController reportController = new ReportController();
            // INITIALISE an IExportController as ExportController, passing in the readController and WriteController
            IExportController conversationExporter = new ExportController(readController, writeController, filterController, reportController);

            ConversationExporterConfiguration configuration = new CommandLineArgumentParser().ParseCommandLineArguments(args, filterController);

            conversationExporter.ExportConversation(configuration.inputFilePath, configuration.outputFilePath);
        }
Пример #11
0
        public async Task CreatePayment_When_Payload_Is_Valid_Then_Return_NoContent()
        {
            var request = new CreatePaymentRequest()
            {
                Amount     = 12.34m,
                Currency   = "USD",
                MerchantId = 123
            };

            var controller = new WriteController(_logger, _mockWriteService.Object);

            var expected = new NoContentResult();
            var actual   = await controller.CreatePayment(request);

            actual.Should().BeEquivalentTo(expected);
        }
        public async Task DeleteIdLessThan1()
        {
            var item = new TestEntity {
                Name = "Ent"
            };
            var mockRepository = new Mock <IWriteRepository <TestEntity> >(MockBehavior.Strict);
            var controller     = new WriteController <TestEntity>(mockRepository.Object);

            var actionResult = await controller.DeleteAsync(0) as BadRequestObjectResult;

            Assert.NotNull(actionResult);
            var message = actionResult.Value as string;

            Assert.NotNull(message);
            Assert.AreEqual(WriteController <TestEntity> .BadIdMessage, actionResult.Value);
        }
        public async Task PutItemIdNotMatchItemId()
        {
            var item = new TestEntity {
                Name = "Ent"
            };
            var mockRepository = new Mock <IWriteRepository <TestEntity> >(MockBehavior.Strict);
            var controller     = new WriteController <TestEntity>(mockRepository.Object);

            var actionResult = await controller.PutAsync(456, item) as BadRequestObjectResult;

            Assert.NotNull(actionResult);
            var message = actionResult.Value as string;

            Assert.NotNull(message);
            Assert.AreEqual(WriteController <TestEntity> .BadIdMatchMessage, actionResult.Value);
        }
Пример #14
0
        public async Task CreatePayment_When_Payload_Is_Invalid_Then_Return_BadRequest()
        {
            var request = new CreatePaymentRequest()
            {
                Amount     = 12.34m,
                Currency   = "USD",
                MerchantId = 123
            };

            var controller = new WriteController(_logger, _mockWriteService.Object);

            controller.ModelState.AddModelError("CreatePaymentRequest", "Invalid payload request!");

            var expected = new BadRequestResult();
            var actual   = await controller.CreatePayment(request);

            actual.Should().BeEquivalentTo(expected);
        }
Пример #15
0
        public async Task CreatePayment_When_Exception_Is_Thrown_Then_Return_InternalServerError()
        {
            var request = new CreatePaymentRequest()
            {
                Amount     = 12.34m,
                Currency   = "USD",
                MerchantId = 123
            };
            var controller = new WriteController(_logger, _mockWriteService.Object);

            _mockWriteService.Setup(x => x.CreatePayment(It.IsAny <CreatePaymentRequest>()))
            .ThrowsAsync(new Exception());

            var expected = new StatusCodeResult(500);
            var actual   = await controller.CreatePayment(request);

            actual.Should().BeEquivalentTo(expected);
            _mockWriteService.Verify();
        }
Пример #16
0
 public void Initialize()
 {
     this._context        = DataContextMocker.GetDataContext("WSiteAssign_UnitTest");
     this._UoW            = new UnitOfWork(this._context);
     this.writeController = new WriteController(this._UoW);
 }