コード例 #1
0
ファイル: Import.cs プロジェクト: OAK1900/KeySwitchManager
        public int Execute(ICommandOption opt)
        {
            var option = (CommandOption)opt;

            using var repository = new LiteDbKeySwitchRepository(option.DatabasePath);
            var translator = new JsonModelListToKeySwitchList();
            var presenter  = new IImportingTextPresenter.Console();
            var interactor = new ImportingJsonInteractor(repository, translator, presenter);

            var input = new ImportingTextRequest(File.ReadAllText(option.InputPath));

            _ = interactor.Execute(input);

            return(0);
        }
コード例 #2
0
        public void ImportTest()
        {
            var jsonText = "[{\"id\":\"419db555-cc1d-405c-8b28-281ded630a45\",\"author\":\"Author\",\"description\":\"Description\",\"created\":\"2020-09-15T16:21:11.354Z\",\"last_updated\":\"2020-09-15T16:21:11.354Z\",\"developer_name\":\"DeveloperName\",\"product_name\":\"ProductName\",\"instrument_name\":\"E.Guitar\",\"articulation\":[{\"articulation_name\":\"Power Chord\",\"articulation_type\":1,\"articulation_group\":0,\"articulation_color\":0,\"midi_message\":{\"note_on\":[],\"control_change\":[],\"program_change\":[]}}]}]";

            var dbRepository = new LiteDbKeySwitchRepository(new MemoryStream());
            var inputData    = new ImportingTextRequest(jsonText);
            var translator   = new JsonModelListToKeySwitchList();
            var interactor   = new ImportingJsonInteractor(
                dbRepository,
                translator, new IImportingTextPresenter.Console()
                );

            interactor.Execute(inputData);

            var entities = dbRepository.Find(new DeveloperName("DeveloperName"));
            var cmp      = translator.Translate(inputData.JsonText);

            var keySwitches = entities.ToList();
            var cmpList     = cmp.ToList();

            Assert.AreEqual(keySwitches.Count(), cmpList.Count());
            Assert.AreEqual(keySwitches.First(), cmpList.First());
        }