Exemple #1
0
        public void CreateUpdateDeleteFetch()
        {
            // file system
            var path         = "/shop/randomsilo/modern-web/backends/TodoList";
            var project      = "TodoList";
            var outputPath   = $"{path}/{project}.Infrastructure.Test/TestOutput/";
            var databaseFile = GetDatabase(outputPath, MethodBase.GetCurrentMethod());

            // logger
            ILogger logger = GetLogger($"{outputPath}/{MethodBase.GetCurrentMethod()}.log");

            // database setup

            // - context
            IDatabaseContext databaseContext = new DatabaseContext(
                $"Data Source={databaseFile}"
                , "TestDb"
                , "TestSchema"
                , $"{path}/sql/sqlite/ALL.sql"
                );

            Assert.NotNull(databaseContext);

            // - manager
            IManageDatabase databaseManager = new DatabaseManager(databaseContext);

            Assert.NotNull(databaseManager);

            // - create tables
            databaseManager.CreateDatabase();

            // - repository
            var toolsRequiredRepository = new ToolsRequiredRepository(databaseManager, new ToolsRequiredRepositorySql(), logger);

            Assert.NotNull(toolsRequiredRepository);

            // - service
            var toolsRequiredService = new ToolsRequiredService(toolsRequiredRepository, logger);

            Assert.NotNull(toolsRequiredService);

            // faker
            BrashActionResult <ToolsRequired> serviceResult = null;
            var toolsRequiredFaker = new ToolsRequiredFaker(databaseManager, logger);

            Assert.NotNull(toolsRequiredFaker);

            // create
            var toolsRequiredCreateModel = toolsRequiredFaker.GetOne();

            serviceResult = toolsRequiredService.Create(toolsRequiredCreateModel);
            Assert.True(serviceResult.Status == BrashActionStatus.SUCCESS, serviceResult.Message);
            Assert.True(serviceResult.Model.ToolsRequiredId > 0);

            // use model with id
            toolsRequiredCreateModel = serviceResult.Model;

            // update
            var toolsRequiredUpdateModel = toolsRequiredFaker.GetOne();

            toolsRequiredUpdateModel.ToolsRequiredId = toolsRequiredCreateModel.ToolsRequiredId;
            serviceResult = toolsRequiredService.Update(toolsRequiredUpdateModel);
            Assert.True(serviceResult.Status == BrashActionStatus.SUCCESS, serviceResult.Message);

            // delete
            serviceResult = toolsRequiredService.Delete(toolsRequiredCreateModel);
            Assert.True(serviceResult.Status == BrashActionStatus.SUCCESS, serviceResult.Message);

            // fetch

            // - make fakes
            var fakes = toolsRequiredFaker.GetMany(10);

            // - add fakes to database
            List <int?> ids = new List <int?>();

            foreach (var f in fakes)
            {
                serviceResult = toolsRequiredService.Create(f);

                Assert.True(serviceResult.Status == BrashActionStatus.SUCCESS, serviceResult.Message);
                Assert.True(serviceResult.Model.ToolsRequiredId >= 0);
                ids.Add(serviceResult.Model.ToolsRequiredId);
            }

            // - get fakes from database
            foreach (var id in ids)
            {
                var model = new ToolsRequired()
                {
                    ToolsRequiredId = id
                };

                serviceResult = toolsRequiredService.Fetch(model);
                Assert.True(serviceResult.Status == BrashActionStatus.SUCCESS, serviceResult.Message);
                Assert.True(serviceResult.Model.ToolsRequiredId >= 0);
            }
        }
Exemple #2
0
 public ToolsRequiredController(ToolsRequiredService toolsRequiredService, Serilog.ILogger logger) : base()
 {
     _toolsRequiredService = toolsRequiredService;
     _logger = logger;
 }