001/*
002 * Licensed to the Apache Software Foundation (ASF) under one
003 * or more contributor license agreements.  See the NOTICE file
004 * distributed with this work for additional information
005 * regarding copyright ownership.  The ASF licenses this file
006 * to you under the Apache License, Version 2.0 (the
007 * "License"); you may not use this file except in compliance
008 * with the License.  You may obtain a copy of the License at
009 *
010 *   http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing,
013 * software distributed under the License is distributed on an
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015 * KIND, either express or implied.  See the License for the
016 * specific language governing permissions and limitations
017 * under the License.
018 */
019package org.apache.maven.scm.provider;
020
021import java.io.File;
022import java.util.ArrayList;
023import java.util.Collections;
024import java.util.Date;
025import java.util.List;
026
027import org.apache.maven.scm.CommandParameters;
028import org.apache.maven.scm.ScmBranch;
029import org.apache.maven.scm.ScmBranchParameters;
030import org.apache.maven.scm.ScmException;
031import org.apache.maven.scm.ScmFileSet;
032import org.apache.maven.scm.ScmTagParameters;
033import org.apache.maven.scm.ScmVersion;
034import org.apache.maven.scm.command.add.AddScmResult;
035import org.apache.maven.scm.command.blame.BlameScmRequest;
036import org.apache.maven.scm.command.blame.BlameScmResult;
037import org.apache.maven.scm.command.branch.BranchScmResult;
038import org.apache.maven.scm.command.changelog.ChangeLogScmRequest;
039import org.apache.maven.scm.command.changelog.ChangeLogScmResult;
040import org.apache.maven.scm.command.checkin.CheckInScmResult;
041import org.apache.maven.scm.command.checkout.CheckOutScmResult;
042import org.apache.maven.scm.command.diff.DiffScmResult;
043import org.apache.maven.scm.command.edit.EditScmResult;
044import org.apache.maven.scm.command.export.ExportScmResult;
045import org.apache.maven.scm.command.info.InfoScmResult;
046import org.apache.maven.scm.command.list.ListScmResult;
047import org.apache.maven.scm.command.mkdir.MkdirScmResult;
048import org.apache.maven.scm.command.remoteinfo.RemoteInfoScmResult;
049import org.apache.maven.scm.command.remove.RemoveScmResult;
050import org.apache.maven.scm.command.status.StatusScmResult;
051import org.apache.maven.scm.command.tag.TagScmResult;
052import org.apache.maven.scm.command.unedit.UnEditScmResult;
053import org.apache.maven.scm.command.untag.UntagScmResult;
054import org.apache.maven.scm.command.update.UpdateScmResult;
055import org.apache.maven.scm.repository.ScmRepository;
056import org.apache.maven.scm.repository.ScmRepositoryException;
057import org.apache.maven.scm.repository.UnknownRepositoryStructure;
058
059/**
060 * Stub implementation of ScmProvider for unit testing purposes.
061 * It allows setting the expected results that the different methods will return.
062 * More information about Stubs on
063 * <a href="https://martinfowler.com/bliki/TestDouble.html">Martin Fowler's TestDouble</a>
064 *
065 * @author <a href="mailto:carlos@apache.org">Carlos Sanchez</a>
066 */
067public class ScmProviderStub implements ScmProvider {
068
069    private String scmType, scmSpecificFilename;
070
071    private boolean requiresEditmode;
072
073    private ScmProviderRepository scmProviderRepository = new ScmProviderRepositoryStub();
074
075    private List<String> errors = new ArrayList<>();
076
077    private AddScmResult addScmResult;
078
079    private BranchScmResult branchScmResult;
080
081    private CheckInScmResult checkInScmResult;
082
083    private CheckOutScmResult checkOutScmResult;
084
085    private ChangeLogScmResult changeLogScmResult;
086
087    private DiffScmResult diffScmResult;
088
089    private RemoveScmResult removeScmResult;
090
091    private StatusScmResult statusScmResult;
092
093    private TagScmResult tagScmResult;
094
095    private UpdateScmResult updateScmResult;
096
097    private EditScmResult editScmResult;
098
099    private UnEditScmResult unEditScmResult;
100
101    private ListScmResult listScmResult;
102
103    private ExportScmResult exportScmResult;
104
105    private BlameScmResult blameScmResult;
106
107    private MkdirScmResult mkdirScmResult;
108
109    private UntagScmResult untagScmResult;
110
111    /**
112     * Create a new ScmProviderStub with bogus (not null) attributes.
113     */
114    public ScmProviderStub() {
115        setScmSpecificFilename("");
116        setAddScmResult(new AddScmResult("", Collections.emptyList()));
117        setBranchScmResult(new BranchScmResult("", Collections.emptyList()));
118        setChangeLogScmResult(new ChangeLogScmResult("", "", "", true));
119        setCheckInScmResult(new CheckInScmResult("", "", "", true));
120        setCheckOutScmResult(new CheckOutScmResult("", "", "", true));
121        setDiffScmResult(new DiffScmResult("", "", "", true));
122        setEditScmResult(new EditScmResult("", "", "", true));
123        setExportScmResult(new ExportScmResult("", "", "", true));
124        setRemoveScmResult(new RemoveScmResult("", "", "", true));
125        setStatusScmResult(new StatusScmResult("", "", "", true));
126        setTagScmResult(new TagScmResult("", "", "", true));
127        setUnEditScmResult(new UnEditScmResult("", "", "", true));
128        setUntagScmResult(new UntagScmResult("", "", "", true));
129        setUpdateScmResult(new UpdateScmResult("", "", "", true));
130        setBlameScmResult(new BlameScmResult("", "", "", true));
131        setMkdirScmResult(new MkdirScmResult("", "", "", true));
132    }
133
134    /**
135     * {@inheritDoc}
136     */
137    public String sanitizeTagName(String tag) {
138        return tag;
139    }
140
141    /**
142     * {@inheritDoc}
143     */
144    public boolean validateTagName(String tag) {
145        return true;
146    }
147
148    /**
149     * {@inheritDoc}
150     */
151    public String getScmType() {
152        return scmType;
153    }
154
155    public void setScmSpecificFilename(String scmSpecificFilename) {
156        this.scmSpecificFilename = scmSpecificFilename;
157    }
158
159    public boolean requiresEditMode() {
160        return requiresEditmode;
161    }
162
163    public void setAddScmResult(AddScmResult addScmResult) {
164        this.addScmResult = addScmResult;
165    }
166
167    public AddScmResult getAddScmResult() {
168        return addScmResult;
169    }
170
171    public void setBranchScmResult(BranchScmResult branchScmResult) {
172        this.branchScmResult = branchScmResult;
173    }
174
175    public BranchScmResult getBranchScmResult() {
176        return branchScmResult;
177    }
178
179    public void setCheckInScmResult(CheckInScmResult checkInScmResult) {
180        this.checkInScmResult = checkInScmResult;
181    }
182
183    public CheckInScmResult getCheckInScmResult() {
184        return checkInScmResult;
185    }
186
187    public void setCheckOutScmResult(CheckOutScmResult checkOutScmResult) {
188        this.checkOutScmResult = checkOutScmResult;
189    }
190
191    public CheckOutScmResult getCheckOutScmResult() {
192        return checkOutScmResult;
193    }
194
195    public void setChangeLogScmResult(ChangeLogScmResult changeLogScmResult) {
196        this.changeLogScmResult = changeLogScmResult;
197    }
198
199    public ChangeLogScmResult getChangeLogScmResult() {
200        return changeLogScmResult;
201    }
202
203    public void setDiffScmResult(DiffScmResult diffScmResult) {
204        this.diffScmResult = diffScmResult;
205    }
206
207    public DiffScmResult getDiffScmResult() {
208        return diffScmResult;
209    }
210
211    public ExportScmResult getExportScmResult() {
212        return exportScmResult;
213    }
214
215    public void setExportScmResult(ExportScmResult exportScmResult) {
216        this.exportScmResult = exportScmResult;
217    }
218
219    public void setTagScmResult(TagScmResult tagScmResult) {
220        this.tagScmResult = tagScmResult;
221    }
222
223    public TagScmResult getTagScmResult() {
224        return tagScmResult;
225    }
226
227    public void setUntagScmResult(UntagScmResult untagScmResult) {
228        this.untagScmResult = untagScmResult;
229    }
230
231    public UntagScmResult getUntagScmResult() {
232        return untagScmResult;
233    }
234
235    public void setRemoveScmResult(RemoveScmResult removeScmResult) {
236        this.removeScmResult = removeScmResult;
237    }
238
239    public RemoveScmResult getRemoveScmResult() {
240        return removeScmResult;
241    }
242
243    public void setStatusScmResult(StatusScmResult statusScmResult) {
244        this.statusScmResult = statusScmResult;
245    }
246
247    public StatusScmResult getStatusScmResult() {
248        return statusScmResult;
249    }
250
251    public void setUpdateScmResult(UpdateScmResult updateScmResult) {
252        this.updateScmResult = updateScmResult;
253    }
254
255    public UpdateScmResult getUpdateScmResult() {
256        return updateScmResult;
257    }
258
259    public void setEditScmResult(EditScmResult editScmResult) {
260        this.editScmResult = editScmResult;
261    }
262
263    public EditScmResult getEditScmResult() {
264        return editScmResult;
265    }
266
267    public void setUnEditScmResult(UnEditScmResult unEditScmResult) {
268        this.unEditScmResult = unEditScmResult;
269    }
270
271    public UnEditScmResult getUnEditScmResult() {
272        return unEditScmResult;
273    }
274
275    public void setListScmResult(ListScmResult listScmResult) {
276        this.listScmResult = listScmResult;
277    }
278
279    public ListScmResult getListScmResult() {
280        return listScmResult;
281    }
282
283    public void setBlameScmResult(BlameScmResult blameScmResult) {
284        this.blameScmResult = blameScmResult;
285    }
286
287    public BlameScmResult getBlameScmResult() {
288        return blameScmResult;
289    }
290
291    public MkdirScmResult getMkdirScmResult() {
292        return mkdirScmResult;
293    }
294
295    public void setMkdirScmResult(MkdirScmResult mkdirScmResult) {
296        this.mkdirScmResult = mkdirScmResult;
297    }
298
299    /**
300     * {@inheritDoc}
301     */
302    public ScmProviderRepository makeProviderScmRepository(String scmSpecificUrl, char delimiter)
303            throws ScmRepositoryException {
304        return scmProviderRepository;
305    }
306
307    /**
308     * {@inheritDoc}
309     */
310    public ScmProviderRepository makeProviderScmRepository(File path)
311            throws ScmRepositoryException, UnknownRepositoryStructure {
312        return scmProviderRepository;
313    }
314
315    /**
316     * {@inheritDoc}
317     */
318    public List<String> validateScmUrl(String scmSpecificUrl, char delimiter) {
319        return errors;
320    }
321
322    /**
323     * {@inheritDoc}
324     */
325    public String getScmSpecificFilename() {
326        return scmSpecificFilename;
327    }
328
329    /**
330     * {@inheritDoc}
331     */
332    public AddScmResult add(ScmRepository repository, ScmFileSet fileSet) throws ScmException {
333        return getAddScmResult();
334    }
335
336    /**
337     * {@inheritDoc}
338     */
339    public AddScmResult add(ScmRepository repository, ScmFileSet fileSet, String message) throws ScmException {
340        return getAddScmResult();
341    }
342
343    public AddScmResult add(ScmRepository repository, ScmFileSet fileSet, CommandParameters commandParameters)
344            throws ScmException {
345        return getAddScmResult();
346    }
347
348    /**
349     * {@inheritDoc}
350     */
351    public BranchScmResult branch(ScmRepository repository, ScmFileSet fileSet, String branchName) throws ScmException {
352        return getBranchScmResult();
353    }
354
355    /**
356     * {@inheritDoc}
357     */
358    public BranchScmResult branch(ScmRepository repository, ScmFileSet fileSet, String branchName, String message)
359            throws ScmException {
360        return getBranchScmResult();
361    }
362
363    /**
364     * {@inheritDoc}
365     */
366    public BranchScmResult branch(
367            ScmRepository repository, ScmFileSet fileSet, String branchName, ScmBranchParameters scmBranchParameters)
368            throws ScmException {
369        return getBranchScmResult();
370    }
371
372    /**
373     * {@inheritDoc}
374     */
375    public ChangeLogScmResult changeLog(
376            ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate, int numDays, String branch)
377            throws ScmException {
378        return getChangeLogScmResult();
379    }
380
381    /**
382     * {@inheritDoc}
383     */
384    public ChangeLogScmResult changeLog(
385            ScmRepository repository,
386            ScmFileSet fileSet,
387            Date startDate,
388            Date endDate,
389            int numDays,
390            String branch,
391            String datePattern)
392            throws ScmException {
393        return getChangeLogScmResult();
394    }
395
396    /**
397     * {@inheritDoc}
398     */
399    public ChangeLogScmResult changeLog(ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag)
400            throws ScmException {
401        return getChangeLogScmResult();
402    }
403
404    /**
405     * {@inheritDoc}
406     */
407    public ChangeLogScmResult changeLog(
408            ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag, String datePattern)
409            throws ScmException {
410        return getChangeLogScmResult();
411    }
412
413    /**
414     * {@inheritDoc}
415     */
416    public ChangeLogScmResult changeLog(
417            ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate, int numDays, ScmBranch branch)
418            throws ScmException {
419        return getChangeLogScmResult();
420    }
421
422    /**
423     * {@inheritDoc}
424     */
425    public ChangeLogScmResult changeLog(
426            ScmRepository repository,
427            ScmFileSet fileSet,
428            Date startDate,
429            Date endDate,
430            int numDays,
431            ScmBranch branch,
432            String datePattern)
433            throws ScmException {
434        return getChangeLogScmResult();
435    }
436
437    public ChangeLogScmResult changeLog(ChangeLogScmRequest scmRequest) throws ScmException {
438        return getChangeLogScmResult();
439    }
440
441    /**
442     * {@inheritDoc}
443     */
444    public ChangeLogScmResult changeLog(
445            ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion, ScmVersion endVersion)
446            throws ScmException {
447        return getChangeLogScmResult();
448    }
449
450    /**
451     * {@inheritDoc}
452     */
453    public ChangeLogScmResult changeLog(
454            ScmRepository repository,
455            ScmFileSet fileSet,
456            ScmVersion startRevision,
457            ScmVersion endRevision,
458            String datePattern)
459            throws ScmException {
460        return getChangeLogScmResult();
461    }
462
463    /**
464     * {@inheritDoc}
465     */
466    public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, String tag, String message)
467            throws ScmException {
468        return getCheckInScmResult();
469    }
470
471    /**
472     * {@inheritDoc}
473     */
474    public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, String message) throws ScmException {
475        return getCheckInScmResult();
476    }
477
478    /**
479     * {@inheritDoc}
480     */
481    public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, ScmVersion revision, String message)
482            throws ScmException {
483        return getCheckInScmResult();
484    }
485
486    @Override
487    public CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters)
488            throws ScmException {
489        return getCheckInScmResult();
490    }
491
492    /**
493     * {@inheritDoc}
494     */
495    public CheckOutScmResult checkOut(ScmRepository scmRepository, ScmFileSet scmFileSet, String tag, boolean recursive)
496            throws ScmException {
497        return getCheckOutScmResult();
498    }
499
500    /**
501     * {@inheritDoc}
502     */
503    public CheckOutScmResult checkOut(ScmRepository repository, ScmFileSet fileSet, String tag) throws ScmException {
504        return getCheckOutScmResult();
505    }
506
507    /**
508     * {@inheritDoc}
509     */
510    public CheckOutScmResult checkOut(ScmRepository repository, ScmFileSet fileSet) throws ScmException {
511        return getCheckOutScmResult();
512    }
513
514    /**
515     * {@inheritDoc}
516     */
517    public CheckOutScmResult checkOut(ScmRepository repository, ScmFileSet fileSet, ScmVersion version)
518            throws ScmException {
519        return getCheckOutScmResult();
520    }
521
522    /**
523     * {@inheritDoc}
524     */
525    public CheckOutScmResult checkOut(ScmRepository scmRepository, ScmFileSet scmFileSet, boolean recursive)
526            throws ScmException {
527        return getCheckOutScmResult();
528    }
529
530    /**
531     * {@inheritDoc}
532     */
533    public CheckOutScmResult checkOut(
534            ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion version, boolean recursive)
535            throws ScmException {
536        return getCheckOutScmResult();
537    }
538
539    @Override
540    public CheckOutScmResult checkOut(
541            ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion version, CommandParameters commandParameters)
542            throws ScmException {
543        return getCheckOutScmResult();
544    }
545
546    /**
547     * {@inheritDoc}
548     */
549    public DiffScmResult diff(ScmRepository repository, ScmFileSet fileSet, String startRevision, String endRevision)
550            throws ScmException {
551        return getDiffScmResult();
552    }
553
554    /**
555     * {@inheritDoc}
556     */
557    public DiffScmResult diff(
558            ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion startVersion, ScmVersion endVersion)
559            throws ScmException {
560        return getDiffScmResult();
561    }
562
563    /**
564     * @return getUpdateScmResult() always
565     */
566    public UpdateScmResult update(
567            ScmRepository repository,
568            ScmFileSet fileSet,
569            String tag,
570            Date lastUpdate,
571            String datePattern,
572            boolean runChangelog)
573            throws ScmException {
574        return getUpdateScmResult();
575    }
576
577    /**
578     * {@inheritDoc}
579     */
580    public EditScmResult edit(ScmRepository repository, ScmFileSet fileSet) throws ScmException {
581        return getEditScmResult();
582    }
583
584    /**
585     * {@inheritDoc}
586     */
587    public ExportScmResult export(ScmRepository repository, ScmFileSet fileSet, String tag) throws ScmException {
588        return getExportScmResult();
589    }
590
591    /**
592     * {@inheritDoc}
593     */
594    public ExportScmResult export(ScmRepository repository, ScmFileSet fileSet, String tag, String outputDirectory)
595            throws ScmException {
596        return getExportScmResult();
597    }
598
599    /**
600     * {@inheritDoc}
601     */
602    public ExportScmResult export(ScmRepository repository, ScmFileSet fileSet) throws ScmException {
603        return getExportScmResult();
604    }
605
606    /**
607     * {@inheritDoc}
608     */
609    public ExportScmResult export(ScmRepository repository, ScmFileSet fileSet, ScmVersion version)
610            throws ScmException {
611        return getExportScmResult();
612    }
613
614    /**
615     * {@inheritDoc}
616     */
617    public ExportScmResult export(
618            ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String outputDirectory)
619            throws ScmException {
620        return getExportScmResult();
621    }
622
623    /**
624     * {@inheritDoc}
625     */
626    public ListScmResult list(ScmRepository repository, ScmFileSet fileSet, boolean recursive, String tag)
627            throws ScmException {
628        return getListScmResult();
629    }
630
631    /**
632     * {@inheritDoc}
633     */
634    public ListScmResult list(ScmRepository repository, ScmFileSet fileSet, boolean recursive, ScmVersion version)
635            throws ScmException {
636        return getListScmResult();
637    }
638
639    /**
640     * {@inheritDoc}
641     */
642    public RemoveScmResult remove(ScmRepository repository, ScmFileSet fileSet, String message) throws ScmException {
643        return getRemoveScmResult();
644    }
645
646    /**
647     * {@inheritDoc}
648     */
649    public StatusScmResult status(ScmRepository repository, ScmFileSet fileSet) throws ScmException {
650        return getStatusScmResult();
651    }
652
653    /**
654     * {@inheritDoc}
655     */
656    public TagScmResult tag(ScmRepository repository, ScmFileSet fileSet, String tag) throws ScmException {
657        return getTagScmResult();
658    }
659
660    /**
661     * {@inheritDoc}
662     */
663    public TagScmResult tag(ScmRepository repository, ScmFileSet fileSet, String tag, String message)
664            throws ScmException {
665        return getTagScmResult();
666    }
667
668    public TagScmResult tag(
669            ScmRepository repository, ScmFileSet fileSet, String tagName, ScmTagParameters scmTagParameters)
670            throws ScmException {
671        return getTagScmResult();
672    }
673
674    public UntagScmResult untag(ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters)
675            throws ScmException {
676        return getUntagScmResult();
677    }
678
679    /**
680     * {@inheritDoc}
681     */
682    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, String tag) throws ScmException {
683        return getUpdateScmResult();
684    }
685
686    /**
687     * {@inheritDoc}
688     */
689    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, String tag, boolean runChangelog)
690            throws ScmException {
691        return getUpdateScmResult();
692    }
693
694    /**
695     * {@inheritDoc}
696     */
697    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, String tag, String datePattern)
698            throws ScmException {
699        return getUpdateScmResult();
700    }
701
702    /**
703     * {@inheritDoc}
704     */
705    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate)
706            throws ScmException {
707        return getUpdateScmResult();
708    }
709
710    /**
711     * {@inheritDoc}
712     */
713    public UpdateScmResult update(
714            ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate, String datePattern)
715            throws ScmException {
716        return getUpdateScmResult();
717    }
718
719    /**
720     * {@inheritDoc}
721     */
722    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet) throws ScmException {
723        return getUpdateScmResult();
724    }
725
726    /**
727     * {@inheritDoc}
728     */
729    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version)
730            throws ScmException {
731        return getUpdateScmResult();
732    }
733
734    /**
735     * {@inheritDoc}
736     */
737    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, boolean runChangelog)
738            throws ScmException {
739        return getUpdateScmResult();
740    }
741
742    /**
743     * {@inheritDoc}
744     */
745    public UpdateScmResult update(
746            ScmRepository repository, ScmFileSet fileSet, ScmVersion version, boolean runChangelog)
747            throws ScmException {
748        return getUpdateScmResult();
749    }
750
751    /**
752     * {@inheritDoc}
753     */
754    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String datePattern)
755            throws ScmException {
756        return getUpdateScmResult();
757    }
758
759    /**
760     * {@inheritDoc}
761     */
762    public UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate)
763            throws ScmException {
764        return getUpdateScmResult();
765    }
766
767    /**
768     * {@inheritDoc}
769     */
770    public UpdateScmResult update(
771            ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate, String datePattern)
772            throws ScmException {
773        return getUpdateScmResult();
774    }
775
776    /**
777     * {@inheritDoc}
778     */
779    public UnEditScmResult unedit(ScmRepository repository, ScmFileSet fileSet) throws ScmException {
780        return getUnEditScmResult();
781    }
782
783    /**
784     * {@inheritDoc}
785     */
786    public BlameScmResult blame(ScmRepository repository, ScmFileSet fileSet, String filename) throws ScmException {
787        return getBlameScmResult();
788    }
789
790    public BlameScmResult blame(BlameScmRequest blameScmRequest) throws ScmException {
791        return getBlameScmResult();
792    }
793
794    /**
795     * {@inheritDoc}
796     */
797    public MkdirScmResult mkdir(ScmRepository repository, ScmFileSet fileSet, String message, boolean createInLocal)
798            throws ScmException {
799        return getMkdirScmResult();
800    }
801
802    public InfoScmResult info(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)
803            throws ScmException {
804        return new InfoScmResult("", "", "", true);
805    }
806
807    public RemoteInfoScmResult remoteInfo(
808            ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters) throws ScmException {
809        return new RemoteInfoScmResult("", null, null);
810    }
811}